android下创建节点的几种方法

第一种:会在/sys/bus/platform/drivers/pmic_analog_codec/xxxxxxxx/下创建节点:headset_cur_state。

 static DEVICE_ATTR(headset_cur_state, S_IRUGO, headset_cur_state_show, NULL);
 static DEVICE_ATTR(pttTest, S_IWUSR|S_IRUGO, pttTest_show, pttTest_store);

 static struct device_attribute *wcd_attr_list[] = {
            &dev_attr_headset_cur_state,
            &dev_attr_pttTest,
            };
 static int wcd_create_attr(struct device *dev){
                 int idx, err = 0;
                 int num = (int)(sizeof(wcd_attr_list)/sizeof(wcd_attr_list[0]));
                 if (dev == NULL)
                     return -EINVAL;
                 for (idx = 0; idx < num; idx++) {
                     err = device_create_file(dev, wcd_attr_list[idx]);
                     if (err) {
                         pr_err("--%s: driver_create_file (%s) = %d\n", __func__, wcd_attr_list[idx]->attr.name, err);
                         break;
                         }
                     }
                 return err;
             }

rc = wcd_create_attr(sdm660_cdc->dev);
    if(rc)
        pr_err("%s: create attribute failed, rc=%d\n", __func__, rc);

第二种:会在/sys/bus/platform/drivers/pmic_analog_codec/xxxxxxxx/下创建节点:hph_status。

static ssize_t hph_status_show(struct device *dev, struct device_attribute *attr, char *buf)
{
      struct sdm660_cdc_priv *pdev = dev_get_drvdata(dev);
      pr_debug("--%s: enter pdev->mbhc.hph_status %d \n", __func__,
              pdev->mbhc.hph_status);

if(3 == pdev->mbhc.hph_status)
    return sprintf(buf, "%d\n", 1);
else
    return sprintf(buf, "%d\n", 0);
}

static DEVICE_ATTR(hph_status, 0644, hph_status_show,NULL);

ret = device_create_file(codec->dev, &dev_attr_hph_status);

if (ret != 0) {
  dev_err(codec->dev, "Failed to create hph status file: %d\n",
   ret);
}

第三种:会在sys/kerne/scanner_led_kobj/下创建节点:scanner_illled。


static struct kobj_attribute foo_attribute =
        __ATTR(scanner_illled, 0664, foo_show, foo_store);

static struct attribute *attrs[] = {
        &foo_attribute.attr,
        NULL,   
};
static struct attribute_group attr_group = {
        .attrs = attrs,
};

static struct kobject *scanner_led_kobj;

/* Create the files associated with this kobject */
        retval = sysfs_create_group(scanner_led_kobj, &attr_group);
        if (retval)
                kobject_put(scanner_led_kobj);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值