本帖最后由 启明云端科技 于 2021-9-8 15:15 编辑
SSD20X提供2组硬件的I2C,根据 SSD201 HW Checklist V6.xlsx[GPIOList] 一表,我们可以看出I2C0和I2C1可以复用哪些引脚:
总结得出下表数据:
首先配置DTS的i2c节点: vi arch/arm/boot/dts/infinity2m-ssc011a-s01a-display.dtsi i2c0@0{ compatible = "sstar,i2c"; reg = <0x1F223000 0x200>,<0x1F203c00 0x200>,<0x1F207000 0x200>; #address-cells = <1>; #size-cells = <0>; clocks = <&CLK_miic0>; i2c-group = <0>; /* * padmux: 1 -> PAD_HDMITX_SCL, PAD_HDMITX_SDA * 2 -> PAD_TTL1, PAD_TTL2 * 3 -> PAD_TTL14, PAD_TTL15 * 4 -> PAD_GPIO6, PAD_GPIO7 */ i2c-padmux = <4>; /* * speed: 0 -> HWI2C_HIGH(high speed: 400 KHz) * 1 -> HWI2C_NORMAL(normal speed: 300 KHz) * 2 -> HWI2C_SLOW(slow speed: 200 KHz) * 3 -> HWI2C_VSLOW(very slow: 100 KHz) * 4 -> HWI2C_USLOW(ultra slow: 50 KHz) * 5 -> HWI2C_UVSLOW(ultra-very slow: 25 KHz) */ i2c-speed = <3>; i2c-en-dma = <0>; // 0: disable; 1: enable; status = "ok"; };需要关注使用的是哪一组GPIO,并赋值i2c-padmux。然后设置该组GPIO的复用mode: vi infinity2m-ssc011a-s01a-padmux-display.dtsi , ,系统起来后,可以看到/dev/i2c-0,说明驱动加载成功。
|