如何为 yocto 项目在 beaglebone black 上启用 I2C2?
How to enable I2C2 on beaglebone black for yocto project?
我正在尝试在 beaglebone black 上构建 yocto 项目。我想在 beagle bone 上启用 I2C2 端口。我是 yocto 项目的新手。
任何指针或参考文档都会有所帮助。
这里是原始文件am335x-boneblack-common.dtsi,我想用以下内容修改那个文件
i2c2_pins: pinmux_i2c2_pins {
pinctrl-single,pins = <0x178 0x73 0x17c 0x73>;
};
user_leds_pins: pinmux_user_leds {
pinctrl-single,pins = < AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE7) >; /* P9.14, gpio1[18] */
};
和
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&user_leds_pins>;
i2c2-live {
gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};
&i2c2: i2c@4819c000 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins>;
status = "okay";
clock-frequency = <100000>;
tmp75@4d {
compatible = "national,lm75";
reg = <0x4d>;
};
};
请建议如何为以上代码创建补丁。
提前致谢
此致,
尼克尔
首先你需要了解如何处理你的dts
文件。
您需要决定是否要使用 linux 内核提供的官方 dts
文件并对其进行修补。或者,创建您自己的 dts
文件并改用它。
要了解如何修补 dts
或如何添加自定义补丁,我有 2 个 Whosebug 答案,here and 。
理解之后,现在让我们谈谈添加 I2C 节点。
首先,您需要搜索您的传感器是否有官方内核驱动。
如果它有一个驱动程序,那么它有一个在其中定义的 compatible
名称。
您将该名称与该 I2C 总线中的传感器地址一起使用,并且:
例如将地址为0x01的传感器添加到I2C 1总线:
&i2c1 {
// ...
sensor_name: sensor_name@0x01 {
compatible = "compatible_name";
reg = "0x01";
}
}
现在,您需要在内核中激活驱动程序的标志defconfig
bitbake linux-XXX -c menuconfig
激活旗帜,并且:
bitbake linux-XXX -c diffconfig
它将生成 .cfg
只包含差异的文件。
把它添加到你的 linux 食谱中:
SRC_URI_append = " file://sensor.cfg"
我正在尝试在 beaglebone black 上构建 yocto 项目。我想在 beagle bone 上启用 I2C2 端口。我是 yocto 项目的新手。 任何指针或参考文档都会有所帮助。
这里是原始文件am335x-boneblack-common.dtsi,我想用以下内容修改那个文件
i2c2_pins: pinmux_i2c2_pins {
pinctrl-single,pins = <0x178 0x73 0x17c 0x73>;
};
user_leds_pins: pinmux_user_leds {
pinctrl-single,pins = < AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE7) >; /* P9.14, gpio1[18] */
};
和
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&user_leds_pins>;
i2c2-live {
gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};
&i2c2: i2c@4819c000 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins>;
status = "okay";
clock-frequency = <100000>;
tmp75@4d {
compatible = "national,lm75";
reg = <0x4d>;
};
};
请建议如何为以上代码创建补丁。
提前致谢
此致, 尼克尔
首先你需要了解如何处理你的dts
文件。
您需要决定是否要使用 linux 内核提供的官方 dts
文件并对其进行修补。或者,创建您自己的 dts
文件并改用它。
要了解如何修补 dts
或如何添加自定义补丁,我有 2 个 Whosebug 答案,here and
理解之后,现在让我们谈谈添加 I2C 节点。
首先,您需要搜索您的传感器是否有官方内核驱动。
如果它有一个驱动程序,那么它有一个在其中定义的 compatible
名称。
您将该名称与该 I2C 总线中的传感器地址一起使用,并且:
例如将地址为0x01的传感器添加到I2C 1总线:
&i2c1 {
// ...
sensor_name: sensor_name@0x01 {
compatible = "compatible_name";
reg = "0x01";
}
}
现在,您需要在内核中激活驱动程序的标志defconfig
bitbake linux-XXX -c menuconfig
激活旗帜,并且:
bitbake linux-XXX -c diffconfig
它将生成 .cfg
只包含差异的文件。
把它添加到你的 linux 食谱中:
SRC_URI_append = " file://sensor.cfg"