打印

求教BBB设备树里面的exclusive-use参数含义(已解决)

[复制链接]
1187|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nyszx|  楼主 | 2017-8-1 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 nyszx 于 2017-8-23 12:13 编辑

最近玩BBB,遇到些问题,求教专业人士设备树里面的exclusive-use参数是什么意思,搜索无果,似乎不是设备树必须的。
例如BBB上面的 BB-UART1-00A0.dtbo反编译后内容:
root@beaglebone:/lib/firmware# dtc -I dtb -O dts BB-UART1-00A0.dtbo
/dts-v1/;

/ {
        compatible = "ti,beaglebone", "ti,beaglebone-black", "ti,beaglebone-green";
        part-number = "BB-UART1";
        version = "00A0";
        exclusive-use = "P9.24", "P9.26", "uart1";

        fragment@0 {
                target = <0xdeadbeef>;

                __overlay__ {

                        pinmux_bb_uart1_pins {
                                pinctrl-single,pins = <0x184 0x8 0x180 0x28>;
                                linux,phandle = <0x1>;
                                phandle = <0x1>;
                        };
                };
        };

        fragment@1 {
                target = <0xdeadbeef>;

                __overlay__ {
                        status = "okay";
                        pinctrl-names = "default";
                        pinctrl-0 = <0x1>;
                };
        };

        __symbols__ {
                bb_uart1_pins = "/fragment@0/__overlay__/pinmux_bb_uart1_pins";
        };

        __local_fixups__ {

                fragment@1 {

                        __overlay__ {
                                pinctrl-0 = <0x0>;
                        };
                };
        };

        __fixups__ {
                am33xx_pinmux = "/fragment@0:target:0";
                uart1 = "/fragment@1:target:0";
        };
};
扩展一下,如何读dts文件,还有就是P9.24和P9.26是怎么来的?
pinctrl-single,pins = <0x184 0x8 0x180 0x28>;  搜索资料都说0x184和0x180分别是P9.24和P9.26的地址,这个命名规则,与对应关系是怎样的,在哪里可以查询到?求专家可以来科普一下。

相关帖子

沙发
nyszx|  楼主 | 2017-8-22 15:30 | 只看该作者
自己来回答吧:
exclusive-use属性是使用在针对BBB板子上的,是一个可选属性。BBB有很多的cape,但是BBB的扩展接口只有P8 和P9两个,而其管脚可以定义成不同的功能,每个管脚使用P8.XX 和P9.XX编号,为了避免出现硬件资源被重复使用,在cape的设备树中引入exclusive-use属性,用来标记当前使用的硬件使用资源。在cape加载时,cape管理程序会遍历所有设备树的exclusive-use属性,若出现相同的值则表示资源冲突。如果没有此属性,就没有资源冲突检查功能。
P9.24和P9.26的来历就是P9从1-46的编号,而原理图设计的P9的24脚在连接的是CPU的 D15管脚,此管脚在MODE0下的功能是uart1_txd 而P9的26 连接的是D16管脚,在MODE0下的功能是uart1_rxd.
pinctrl-single,pins = <0x184 0x8 0x180 0x28>中的0x184和0x180含义,得去看AM335X手册中的Peripheral Memory Map和CONTROL_MODULE REGISTERS定义的地址,在Control Module Registers基地址上偏移量为0x184和0x180的寄存器对应的是conf_uart1_rxd、conf_uart1_txd。这里的寄存器是用于pin mux configurations.说白了就是配置管脚复用的。0x8和0x28就是要设置的寄存器值,0-2bit定义MODE,3-4bit定义上下拉等。通过寄存器定义可知是将其配置为uart1

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

334

帖子

3

粉丝