中级会员
 
- 积分
- 351
- 金钱
- 351
- 注册时间
- 2016-4-20
- 在线时间
- 162 小时
|
本帖最后由 hannuaa 于 2020-2-22 12:26 编辑
设备树address-cells和size-cells的是对应的是子节点,而不是当前节点的地址及长度。
左神的视频讲解中,一直将address-cells和size-cells对应当前节点,似乎有点问题?
比如,imx6ull.dtsi中:
i2c1: i2c@021a0000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
reg = <0x021a0000 0x4000>;
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6UL_CLK_I2C1>;
status = "disabled";
};
左神认为address-cells = <1>,size-cells = <0>,因此reg=<0x021a0000 0x4000>是错误的。
个人感觉不能这么理解。标号i2c1中的reg应该受父节点address-cells和size-cells的控制,其父节点如下:
aips1: aips-bus@02000000 {
compatible = "fsl,aips-bus", "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x02000000 0x100000>;
ranges;
因此,对于i2c标号,这么写是对的。
那么对于led驱动试验视频中,alphaled节点下的reg的写法没有问题,但是讲解似乎有不严谨了。因为alphaled节点下的reg应该受父节点(即根节点的控制),根节点的address-cells = <1>,size-cells = <1>,恰好和视频中alphaled节点下的address-cells和size-cells一致而已。
以上纯属个人理解,不知对不对,求探讨?
|
|