return count;
  }
 -EXPORT_SYMBOL_GPL(device_get_child_node_count);
 +EXPORT_SYMBOL_GPL(fwnode_get_child_node_count);
  
+ /**
+  * fwnode_get_named_child_node_count - number of child nodes with given name
+  * @fwnode: Node which child nodes are counted.
+  * @name: String to match child node name against.
+  *
+  * Scan child nodes and count all the nodes with a specific name. Potential
+  * 'number' -ending after the 'at sign' for scanned names is ignored.
+  * E.g.::
+  *   fwnode_get_named_child_node_count(fwnode, "channel");
+  * would match all the nodes::
+  *   channel { }, channel@0 {}, channel@0xabba {}...
+  *
+  * Return: the number of child nodes with a matching name for a given device.
+  */
+ unsigned int fwnode_get_named_child_node_count(const struct fwnode_handle *fwnode,
+                                              const char *name)
+ {
+       struct fwnode_handle *child;
+       unsigned int count = 0;
+ 
+       fwnode_for_each_named_child_node(fwnode, child, name)
+               count++;
+ 
+       return count;
+ }
+ EXPORT_SYMBOL_GPL(fwnode_get_named_child_node_count);
+ 
  bool device_dma_supported(const struct device *dev)
  {
        return fwnode_call_bool_op(dev_fwnode(dev), device_dma_supported);
 
  int fwnode_irq_get(const struct fwnode_handle *fwnode, unsigned int index);
  int fwnode_irq_get_byname(const struct fwnode_handle *fwnode, const char *name);
  
 -unsigned int device_get_child_node_count(const struct device *dev);
 +unsigned int fwnode_get_child_node_count(const struct fwnode_handle *fwnode);
 +
 +static inline unsigned int device_get_child_node_count(const struct device *dev)
 +{
 +      return fwnode_get_child_node_count(dev_fwnode(dev));
 +}
  
+ unsigned int fwnode_get_named_child_node_count(const struct fwnode_handle *fwnode,
+                                              const char *name);
+ static inline unsigned int device_get_named_child_node_count(const struct device *dev,
+                                                            const char *name)
+ {
+       return fwnode_get_named_child_node_count(dev_fwnode(dev), name);
+ }
+ 
  static inline int device_property_read_u8(const struct device *dev,
                                          const char *propname, u8 *val)
  {
 
          drop(device);
      }
  
 +    /// Handle for mmap.
 +    ///
 +    /// This function is invoked when a user space process invokes the `mmap` system call on
 +    /// `file`. The function is a callback that is part of the VMA initializer. The kernel will do
 +    /// initial setup of the VMA before calling this function. The function can then interact with
 +    /// the VMA initialization by calling methods of `vma`. If the function does not return an
 +    /// error, the kernel will complete initialization of the VMA according to the properties of
 +    /// `vma`.
 +    fn mmap(
 +        _device: <Self::Ptr as ForeignOwnable>::Borrowed<'_>,
 +        _file: &File,
 +        _vma: &VmaNew,
 +    ) -> Result {
 +        build_error!(VTABLE_DEFAULT_ERROR)
 +    }
 +
      /// Handler for ioctls.
      ///
-     /// The `cmd` argument is usually manipulated using the utilties in [`kernel::ioctl`].
+     /// The `cmd` argument is usually manipulated using the utilities in [`kernel::ioctl`].
      ///
      /// [`kernel::ioctl`]: mod@crate::ioctl
      fn ioctl(