linux/sound/aoa/soundbus/sysfs.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2#include <linux/kernel.h>
   3#include <linux/of.h>
   4#include <linux/stat.h>
   5/* FIX UP */
   6#include "soundbus.h"
   7
   8static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
   9                             char *buf)
  10{
  11        struct soundbus_dev *sdev = to_soundbus_device(dev);
  12        struct platform_device *of = &sdev->ofdev;
  13        int length;
  14
  15        if (*sdev->modalias) {
  16                strlcpy(buf, sdev->modalias, sizeof(sdev->modalias) + 1);
  17                strcat(buf, "\n");
  18                length = strlen(buf);
  19        } else {
  20                length = sprintf(buf, "of:N%pOFn%c%s\n",
  21                                 of->dev.of_node, 'T',
  22                                 of_node_get_device_type(of->dev.of_node));
  23        }
  24
  25        return length;
  26}
  27static DEVICE_ATTR_RO(modalias);
  28
  29static ssize_t name_show(struct device *dev,
  30                         struct device_attribute *attr, char *buf)
  31{
  32        struct soundbus_dev *sdev = to_soundbus_device(dev);
  33        struct platform_device *of = &sdev->ofdev;
  34
  35        return sprintf(buf, "%pOFn\n", of->dev.of_node);
  36}
  37static DEVICE_ATTR_RO(name);
  38
  39static ssize_t type_show(struct device *dev,
  40                         struct device_attribute *attr, char *buf)
  41{
  42        struct soundbus_dev *sdev = to_soundbus_device(dev);
  43        struct platform_device *of = &sdev->ofdev;
  44
  45        return sprintf(buf, "%s\n", of_node_get_device_type(of->dev.of_node));
  46}
  47static DEVICE_ATTR_RO(type);
  48
  49struct attribute *soundbus_dev_attrs[] = {
  50        &dev_attr_name.attr,
  51        &dev_attr_type.attr,
  52        &dev_attr_modalias.attr,
  53        NULL,
  54};
  55