完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
static struct kobject *rk8xx_kobj; static struct device_attribute rk8xx_attrs = __ATTR(rk8xx_dbg, 0200, NULL, rk8xx_dbg_store); rk8xx_dbg:是操作的文件 0200 :权限 NULL : 显示函数,cat该文件时,此函数被调用。 rk8xx_dbg_store:写函数,echo内容到该文件时,此函数被调用。 创建文件操作的文件 rk8xx_kobj = kobject_create_and_add("rk8xx", NULL); if (rk8xx_kobj) { ret = sysfs_create_file(rk8xx_kobj, &rk8xx_attrs.attr); if (ret) dev_err(&client->dev, "create rk8xx sysfs errorn"); } static ssize_t rk8xx_dbg_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int ret; char cmd; u32 input[2], addr, data; struct rk808 *rk808 = i2c_get_clientdata(rk808_i2c_client); ret = sscanf(buf, "%c ", &cmd); switch (cmd) { case 'w': ret = sscanf(buf, "%c %x %x ", &cmd, &input[0], &input[1]); if (ret != 3) { pr_err("erro! cmd format: echo w [addr] [value]n"); goto out; } addr = input[0] & 0xff; data = input[1] & 0xff; pr_info("cmd : %c %x %xnn", cmd, input[0], input[1]); regmap_write(rk808->regmap, addr, data); regmap_read(rk808->regmap, addr, &data); pr_info("new: %x %xn", addr, data); break; case 'r': ret = sscanf(buf, "%c %x ", &cmd, &input[0]); if (ret != 2) { pr_err("erro! cmd format: echo r [addr]n"); goto out; } pr_info("cmd : %c %xnn", cmd, input[0]); addr = input[0] & 0xff; regmap_read(rk808->regmap, addr, &data); pr_info("%x %xn", input[0], data); break; default: pr_err("Unknown commandn"); break; } out: return count; } 有关kobj,kobject后面有机会单独分析 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
谁有3566+电池+POE充电的方案,有个项目需要用该功能的主板
437 浏览 0 评论
RK3588的GMAC0与PHY的参考时钟电平匹配问题??????
4425 浏览 1 评论
请问各位大佬,如何解决,瑞芯微 RV1126B 使用 mpp 自带工具 调试时,内核直接报错崩溃!
1802 浏览 0 评论
使用rk3568开发板,核0\\1\\3运行linux,核2运行hal,在核0中怎么关闭核2
2359 浏览 0 评论
2363 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 09:46 , Processed in 0.676750 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1994