芯片:AM4372
工具:Ti PinMux Tool
用Ti PinMux Tool生成的I2C0的dtsi配置:
myi2c1_pins_default: myi2c1_pins_default {
pinctrl-single,pins = <
AM4372_IOPAD(0x18c, PIN_INPUT | MUX_MODE0) /* (Y22) I2C0_SCL.I2C0_SCL */
AM4372_IOPAD(0x188, PIN_INPUT | MUX_MODE0) /* (AB24) I2C0_SDA.I2C0_SDA */
>;
};
kernel代码中的I2C0的dtsi配置:(arch/arm/boot/dts/am437x-idk-evm.dts文件)
i2c0_pins_default: i2c0_pins_default {
pinctrl-single,pins = <
AM4372_IOPAD(0x988, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */
AM4372_IOPAD(0x98c, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */
>;
};
可以看出tool生成的寄存器分别是18c和188,kernel中的配置却是98c和988 。
根据am437x的reference manual的page650,可以查到:
988h CTRL_CONF_I2C0_SDA Section 7.3.1.144
98Ch CTRL_CONF_I2C0_SCL Section 7.3.1.145
那tool生成的18c和188是根据什么来的?还是说tool生成的地址是错的?
user3800263:
根据am437x的reference manual的page650,可以查到:
988h CTRL_CONF_I2C0_SDA Section 7.3.1.144
98Ch CTRL_CONF_I2C0_SCL Section 7.3.1.145
那tool生成的18c和188是根据什么来的?还是说tool生成的地址是错的?
user3800263:
回复 Shine:
也就是说,PinMux tool生成的dts文件无法直接使用,还需要加上Control Module base address?