【发布时间】:2022-12-09 10:52:23
【问题描述】:
我正在尝试将 tlv320aic3110 编解码器添加到我的项目中,并且建议我将这些端点添加到 i2s 和 i2c 属性中:
&i2s1 {
...
i2s1_port: port {
i2s1_endpoint: endpoint {
remote-endpoint = <&tlv320aic3110_tx_endpoint>;
format = "i2s";
mclk-fs = <256>;
};
};
};
&i2c1 {
...
codec: codec@18 {
...
ports {
port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
tlv320aic3110_tx_endpoint: endpoint {
remote-endpoint = <&i2s1_endpoint>;
};
};
};
};
};
我遇到的问题是,当我将此设备树构建到 dtb 文件中时,我收到了很多警告:
arch/arm/boot/dts/stm32mp135-evt0.dts:334.5-15: Warning (reg_format): /soc/i2c@40012000/codec@18/ports/port@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm/boot/dts/stm32mp135-evt0.dtb: Warning (pci_device_reg): Failed prerequisite 'reg_format'
arch/arm/boot/dts/stm32mp135-evt0.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
arch/arm/boot/dts/stm32mp135-evt0.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
arch/arm/boot/dts/stm32mp135-evt0.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
arch/arm/boot/dts/stm32mp135-evt0.dts:331.11-338.6: Warning (avoid_default_addr_size): /soc/i2c@40012000/codec@18/ports/port@0: Relying on default #address-cells value
arch/arm/boot/dts/stm32mp135-evt0.dts:331.11-338.6: Warning (avoid_default_addr_size): /soc/i2c@40012000/codec@18/ports/port@0: Relying on default #size-cells value
arch/arm/boot/dts/stm32mp135-evt0.dts:332.5-26: Warning (graph_port): /soc/i2c@40012000/codec@18/ports/port@0:#address-cells: graph node '#address-cells' is -1, must be 1
arch/arm/boot/dts/stm32mp135-evt0.dts:333.5-23: Warning (graph_port): /soc/i2c@40012000/codec@18/ports/port@0:#size-cells: graph node '#size-cells' is -1, must be 0
警告说#address-cells的值既是2又是-1,#size-cells的值是1和-1。但是我已经将它们的值分别设置为1和0,它仍然给我警告。我错过了什么吗?
我还尝试将 #address-cells 和 #size-cells 添加到 i2s 中的端点,但警告仍然存在。
将它们设置为警告中提到的值也没有任何作用。
显然,我对设备树很陌生。
【问题讨论】:
-
这两个属性在其子节点的父节点中指定。因此,如果您在没有子节点的节点中声明这些属性,那就很可疑了。 IOW 节点继承这两个属性,因此您需要在树中更高的位置为该节点的自定义/非默认值指定这两个属性。
-
@sawdust,这就是所谓的节点图,要求与节点子树的父子形式略有不同。
标签: linux linux-kernel embedded-linux device-tree