Firefly开源社区

标题: Firefly-rk3288 I2C 驱动 [打印本页]

作者: madman    时间: 2016-2-24 10:55
标题: Firefly-rk3288 I2C 驱动
本帖最后由 F_madman 于 2017-2-9 18:24 编辑

之前学习的过程中大概整理了下pwm和spi的驱动,现在继续整理下i2c的驱动,只是一个简单的收发程序配了个proc的接口。感觉相对来说i2c的驱动还是比较简便的。在对应的i2c上加上dts的配置:
  1. +        vol@34 {
  2. +                compatible = "nxp,volume";
  3. +                reg = <0x34>;
  4. +        };
复制代码

配置好Makefile
  1. --- a/kernel/drivers/Makefile
  2. +++ b/kernel/drivers/Makefile
  3. @@ -157,3 +157,4 @@ obj-$(CONFIG_NTB)           += ntb/
  4. obj-$(CONFIG_GATOR)            += gator/
  5. obj-y                          += headset_observe/
  6. +obj-y                          += volume_control.o
复制代码
因为懒~所以只配了Makefile,没配Kconfig~{:3_55:}

下面是驱动的代码。有需要的初学者可以看看
ps:
经论坛的朋友提醒
大家要用这个驱动的话
去掉MODULE_DEVICE_TABLE(of, volume_of_match);这句

更新个i2c  oled的驱动,源码见附件

OZ3C~~HHQAP}TLW5UUJH[SR.png (475.87 KB, 下载次数: 403)

OZ3C~~HHQAP}TLW5UUJH[SR.png

volume_control.zip

1.89 KB, 下载次数: 449, 下载积分: 灯泡 -1 , 经验 -1

oled.c.zip

5.27 KB, 下载次数: 237, 下载积分: 灯泡 -1 , 经验 -1


作者: carlinluo    时间: 2016-2-24 11:44
:victory:支持
作者: carlinluo    时间: 2016-2-24 11:59



晒晒 SPI接口的指纹识别,在firefly3288上

作者: linjc    时间: 2016-2-24 14:21
赞一个!
作者: junhai    时间: 2016-3-28 22:36
请问:I2C4的GPIO要用做普通GPIO的话,删除设备树中的配置就可以了吗?
作者: madman    时间: 2016-3-29 08:59
junhai 发表于 2016-3-28 22:36
请问:I2C4的GPIO要用做普通GPIO的话,删除设备树中的配置就可以了吗?

dts里disabled掉,然后按普通io那样申请使用就可以了
作者: junhai    时间: 2016-3-29 10:19
madman 发表于 2016-3-29 08:59
dts里disabled掉,然后按普通io那样申请使用就可以了

        i2c4: i2c@ff160000 {
                compatible = "rockchip,rk30-i2c";
                reg = <0xff160000 0x1000>;
                interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
                pinctrl-names = "default", "gpio";
                pinctrl-0 = <&i2c4_sda &i2c4_scl>;
                pinctrl-1 = <&i2c4_gpio>;
                gpios = <&gpio7 GPIO_C1 GPIO_ACTIVE_LOW>, <&gpio7 GPIO_C2 GPIO_ACTIVE_LOW>;
                clocks = <&clk_gates6 15>;
                rockchip,check-idle = <1>;
                status = "disabled";
        };

i2c4在dts中的status = "disabled"的,但是为什么dev/下还有i2c4设备(crw-rw-rw- root     root      89,   4 2011-01-01 12:00 i2c-4)?
我在自己的驱动中申请gpio是失败的啊!
作者: madman    时间: 2016-3-29 14:04
去dts里面disabled,你这个是dtsi里面的,dts使能了的话会覆盖dtsi
作者: hahath_Th    时间: 2016-3-29 14:18
   用的是谁家的模块啊

作者: hahath_Th    时间: 2016-3-29 14:27
carlinluo 发表于 2016-2-24 11:59
晒晒 SPI接口的指纹识别,在firefly3288上

用的是哪家的模块啊,可以给个链接吗
作者: junhai    时间: 2016-3-29 14:43
madman 发表于 2016-3-29 14:04
去dts里面disabled,你这个是dtsi里面的,dts使能了的话会覆盖dtsi

谢谢,
作者: junhai    时间: 2016-3-29 20:04
madman 发表于 2016-3-29 14:04
去dts里面disabled,你这个是dtsi里面的,dts使能了的话会覆盖dtsi

dts里只有这个啊
&i2c4 {
        status = "okay";
        ts@55 {
                compatible = "goodix,gt8xx";
                reg = <0x55>;
                touch-gpio = <&gpio7 GPIO_A6 IRQ_TYPE_LEVEL_LOW>;
                reset-gpio = <&gpio7 GPIO_A5 GPIO_ACTIVE_LOW>;
                //power-gpio = <&gpio0 GPIO_C5 GPIO_ACTIVE_LOW>;
                max-x = <1280>;
                max-y = <800>;
        };
       
        ts@01 {
                compatible = "ct,vtl_ts";
                reg = <0x01>;
                screen_max_x = <2048>;
                screen_max_y = <1536>;
                irq_gpio_number = <&gpio7 GPIO_A6 IRQ_TYPE_LEVEL_LOW>;
                rst_gpio_number = <&gpio7 GPIO_A5 GPIO_ACTIVE_HIGH>;
        };
};
作者: madman    时间: 2016-3-30 09:01
   status = "okay";改成   status = "disabled";就好了~
作者: firefly001    时间: 2016-7-13 16:14
其实你自己写的代码里面关于of_device_id和i2c_device_id是搞混淆了的,版主没仔细看吗,这会给人误导的
作者: qinchwuhuai    时间: 2016-7-19 20:10
有学习了具体的东西,每天在各位大神的指导下进步一点点,谢谢
作者: xiaofei    时间: 2016-7-26 10:13
good job....
作者: yangze    时间: 2016-7-28 14:50
xiaofei 发表于 2016-7-26 10:13
good job....

楼主 注意查看你的of_device_id 与i2c_device_id哦
作者: nf_xx    时间: 2016-8-22 08:56
LZ能否分享下红外IR控制的例子
作者: tedyyan    时间: 2016-8-27 09:45
太好了,学习学习
作者: tedyyan    时间: 2016-8-27 09:45
太好了,学习学习
作者: madman    时间: 2016-8-28 10:48
nf_xx 发表于 2016-8-22 08:56
LZ能否分享下红外IR控制的例子

ir控制的,firefly里面就有
作者: tedyyan    时间: 2016-9-8 09:12
这个代码,没有用到i2c_master_reg8_recv这个函数,怎么生命了没有用?
作者: lrghl88    时间: 2016-9-8 13:50
赞一下,谢谢分享
作者: chengkni    时间: 2016-11-4 14:41
先下载来看。
作者: xmimixiao    时间: 2016-11-4 16:17
太犀利了
作者: proboy_li    时间: 2016-11-29 09:05
路过,看看
作者: ulyuing    时间: 2017-3-1 23:40
很厉害!学习下
作者: taohaibing    时间: 2017-6-9 10:29
问下dts配置oled的reg的地址是多少???
作者: liyuyinfffewww    时间: 2017-6-15 09:05

作者: sds    时间: 2017-7-4 14:12
厉害
作者: gn5969625    时间: 2017-11-30 16:32

赞一个!
作者: pumpkinZhu    时间: 2018-1-31 18:28
太好了,学习学习
作者: 15390930048    时间: 2018-4-13 18:35
学习学习一下

作者: JohnLee    时间: 2018-7-16 17:44
学习

作者: public    时间: 2018-11-8 12:33
你这个另外一个dts配置呢?
你oled这个文件的dts配置在哪?
static const struct of_device_id oled_of_match[] = {
        { .compatible = "1306,oled" },
        {}
};
另外,iic设备地址在哪儿?

作者: 伫立    时间: 2018-12-24 17:12
大佬们这个无法下载怎么回事哦
作者: 伫立    时间: 2018-12-24 17:19
谢谢大佬分享
作者: 1210443832    时间: 2019-3-18 09:33
楼主,您好。 在firefly维基教程里边讲到I2C驱动的时候需要使用i2c_add_driver函数注册 I2C 驱动,但是您oled里边看到注册I2C驱动,i2c的驱动可以不注册,直接使用吗?
作者: 13925813804    时间: 2019-5-9 15:04
好东西。
作者: 15528063159    时间: 2019-5-10 17:51
解决了燃眉之急
作者: yeweiyunluo    时间: 2019-6-28 15:56
最近要用到I2C的驱动,希望有帮助
作者: freedom118    时间: 2019-7-11 17:58
怎么下载?
作者: 材叔学浅    时间: 2019-7-15 16:24
对新手的帮助很大 感谢楼主
作者: luyqrs    时间: 2019-7-16 15:38
腻害腻害
作者: iFirefiy    时间: 2019-7-26 15:24
可以点RGB接口的屏不
作者: musk    时间: 2019-7-30 22:22
很好
作者: deanhwang0524    时间: 2019-9-2 14:47
有借鉴意义,感谢!
作者: zhoum    时间: 2019-9-11 11:37
非常感谢!!!!!!!
作者: kiswih    时间: 2019-10-25 11:28
:谢谢分享
作者: z2flood    时间: 2019-12-19 14:32

不错学习中。
作者: ICECREAM    时间: 2019-12-27 09:34
学习一下
作者: ycbs    时间: 2020-5-19 18:34
不错,学习了。感谢楼主!
作者: ycbs    时间: 2020-5-19 18:38
学习了,如果要做gpio口使用:去dts里面disabled,而不是dtsi里面的。然后按普通io那样申请使用
作者: coolperl    时间: 2020-7-11 15:58
需要。顺便学习一下
作者: coolperl    时间: 2020-7-14 17:47
看看,正好需要
作者: coolperl    时间: 2020-7-14 17:49
这个还是没看明白哈
作者: gxhei    时间: 2020-8-6 17:20
感谢楼主
作者: zhushengbing    时间: 2020-8-7 10:55
谢谢大神,
作者: TTTTTykw    时间: 2020-8-11 16:43
ddd
作者: TTTTTykw    时间: 2020-8-11 16:53
dddddd
作者: TTTTTykw    时间: 2020-8-11 16:55

作者: TTTTTykw    时间: 2020-8-11 16:57
ccc
作者: gang897572    时间: 2020-8-15 00:04
请问官网固件,我看/dev下面有i2c,能不能直接用
作者: 黄雷    时间: 2020-8-25 10:29
好帖子
作者: 2014    时间: 2021-7-19 17:11

作者: 2014    时间: 2021-7-19 18:09
怎么查看附件资料

作者: kenanhcf    时间: 2021-11-2 19:58
谢谢分享
作者: kenanhcf    时间: 2021-11-2 20:59
谢谢楼主,挺有用的
作者: waitingwind    时间: 2022-8-23 11:00
看看
作者: waitingwind    时间: 2022-8-23 13:55
没有配置Kconfig 可以使用吗




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1