Download presentation
Presentation is loading. Please wait.
Published byMarc Joly Modified 5年之前
1
I2C驱动 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd
2
01 Linux I2C驱动架构 02 Linux I2C测试工具 03 Linux设备树添加I2C设备
3
01 Linux I2C驱动架构 第 1 部分
4
Linux i2c驱动架构 特定device的驱动,例如: drivers/misc/eeprom/at24.c
drivers/i2c/i2c-core.c drivers/i2c/i2c-dev.c drivers/i2c/busses/i2c-davinci.c drivers/i2c/busses/i2c-omap.c drivers/i2c/busses/i2c-s3c2410.c 右图引用自 右图引用自 04 广州创龙电子科技有限公司
5
02 Linux I2C测试工具 第 2 部分
6
Linux i2c测试工具 i2cdetect: 检测挂载在i2c总线上器件 i2cdetect [-y] [-r] I2CBUS 06
广州创龙电子科技有限公司
7
Linux i2c测试工具 i2cdump: 查看器件所有寄存器的值
i2cdump [-f] [-y] I2CBUS ADDRESS [MODE] 07 广州创龙电子科技有限公司
8
Linux i2c测试工具 i2cset: 设置单个寄存器值
i2cset [-f] [-y] I2CBUS CHIP-ADDRESS DATA-ADDRESS [VALUE] i2cget: 读取单个寄存器值 i2cget [-f] [-y] I2CBUS CHIP-ADDRESS DATA-ADDRESS [VALUE] 08 广州创龙电子科技有限公司
9
03 Linux设备树添加I2C设备 第 3 部分
10
Linux设备树添加i2c设备 在设备树中添加设备——使用soc的i2c控制器 在设备树中添加设备——使用gpio模拟i2c
设备树相关说明文档: Documentation/devicetree/bindings/i2c/i2c-omap.txt Documentation/devicetree/bindings/i2c/i2c-gpio.txt 10 广州创龙电子科技有限公司
11
Linux设备树添加i2c设备 1. 在设备树中添加设备——使用soc的i2c控制器 (1)配置i2c的pinmux
i2c1_pins_default: i2c1_pins_default { pinctrl-single,pins = < AM33XX_IOPAD(0x90c, PIN_INPUT_PULLUP | MUX_MODE3) /* (H17) mii1_crs.I2C1_SDA */ AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP | MUX_MODE3) /* (J15) mii1_rx_er.I2C1_SCL */ >; }; &i2c1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins_default>; { compatible = "24c04"; reg = <0x50>; pagesize = <16>; 11 广州创龙电子科技有限公司
12
Linux设备树添加i2c设备 2. 在设备树中添加设备——使用gpio模拟i2c (1)配置gpio的pinmux
compatible = "i2c-gpio"; pinctrl-names = "default"; pinctrl-0 = <&i2c1_gpio_pins_default>; gpios = <&gpio3 1 0 /* sda */ &gpio3 2 0 /* scl */ >; /*i2c-gpio,sda-open-drain; i2c-gpio,scl-open-drain;*/ i2c-gpio,delay-us = <2>; /* ~100 kHz */ #address-cells = <1>; #size-cells = <0>; { compatible = "24c04"; reg = <0x50>; pagesize = <16>; }; 12 广州创龙电子科技有限公司
13
广州创龙电子科技有限公司 谢谢 官网: 论坛: 微信公众号:广州创龙
Similar presentations