root/drivers/macintosh/macio_sysfs.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. compatible_show
  2. modalias_show
  3. devspec_show
  4. name_show
  5. type_show

   1 // SPDX-License-Identifier: GPL-2.0
   2 #include <linux/kernel.h>
   3 #include <linux/stat.h>
   4 #include <asm/macio.h>
   5 
   6 static ssize_t
   7 compatible_show (struct device *dev, struct device_attribute *attr, char *buf)
   8 {
   9         struct platform_device *of;
  10         const char *compat;
  11         int cplen;
  12         int length = 0;
  13 
  14         of = &to_macio_device (dev)->ofdev;
  15         compat = of_get_property(of->dev.of_node, "compatible", &cplen);
  16         if (!compat) {
  17                 *buf = '\0';
  18                 return 0;
  19         }
  20         while (cplen > 0) {
  21                 int l;
  22                 length += sprintf (buf, "%s\n", compat);
  23                 buf += length;
  24                 l = strlen (compat) + 1;
  25                 compat += l;
  26                 cplen -= l;
  27         }
  28 
  29         return length;
  30 }
  31 static DEVICE_ATTR_RO(compatible);
  32 
  33 static ssize_t modalias_show (struct device *dev, struct device_attribute *attr,
  34                               char *buf)
  35 {
  36         return of_device_modalias(dev, buf, PAGE_SIZE);
  37 }
  38 
  39 static ssize_t devspec_show(struct device *dev,
  40                                 struct device_attribute *attr, char *buf)
  41 {
  42         struct platform_device *ofdev;
  43 
  44         ofdev = to_platform_device(dev);
  45         return sprintf(buf, "%pOF\n", ofdev->dev.of_node);
  46 }
  47 static DEVICE_ATTR_RO(modalias);
  48 static DEVICE_ATTR_RO(devspec);
  49 
  50 static ssize_t name_show(struct device *dev,
  51                          struct device_attribute *attr, char *buf)
  52 {
  53         return sprintf(buf, "%pOFn\n", dev->of_node);
  54 }
  55 static DEVICE_ATTR_RO(name);
  56 
  57 static ssize_t type_show(struct device *dev,
  58                          struct device_attribute *attr, char *buf)
  59 {
  60         return sprintf(buf, "%s\n", of_node_get_device_type(dev->of_node));
  61 }
  62 static DEVICE_ATTR_RO(type);
  63 
  64 static struct attribute *macio_dev_attrs[] = {
  65         &dev_attr_name.attr,
  66         &dev_attr_type.attr,
  67         &dev_attr_compatible.attr,
  68         &dev_attr_modalias.attr,
  69         &dev_attr_devspec.attr,
  70         NULL,
  71 };
  72 
  73 static const struct attribute_group macio_dev_group = {
  74         .attrs = macio_dev_attrs,
  75 };
  76 
  77 const struct attribute_group *macio_dev_groups[] = {
  78         &macio_dev_group,
  79         NULL,
  80 };

/* [<][>][^][v][top][bottom][index][help] */