OpenWrt使能mt7620a第二个uart

需要配置target/linux/ramips/dts/下相关文件(mt7620a.dtsi,MT7620a.dts)。
在mt7620a.dtsi中,palmbus@10000000下已经定义好了uart和uartlite,但是uart的status是disabled:

uart@500 {
    compatible = "ralink,mt7620a-uart", "ralink,rt2880-uart", "ns16550a";
    reg = <0x500 0x100>;
    resets = <&rstctrl 12>;
    reset-names = "uart";
    interrupt-parent = <&intc>;
    interrupts = <5>;
    reg-shift = <2>;
    status = "disabled";
};

在 pinctrl {中定义了uart各种复用的功能,但具体使用哪一种功能没有定义:

pcm_i2s_pins: pcm_i2s {
    pcm_i2s {
        ralink,group = "uartf";
        ralink,function = "pcm i2s";
    };
};
uartf_gpio_pins: uartf_gpio {
    uartf_gpio {
        ralink,group = "uartf";
        ralink,function = "gpio uartf";
    };
};

以下是需要在MT7620a.dts修改的地方,MT7620a.dts中include了mt7620a.dtsi,因为要使能uartf,console如果仍然使用uartlite,需要修改

chosen {
     bootargs = "console=ttyS1,57600";
};

在 palmbus@10000000 {中添加uart enable

uart@500 {
    status = "okay";
};

在pinctrl {中配置uartf复用的功能

pinctrl {
    state_default: pinctrl0 {
        gpio {
            ralink,group = "i2c";
            ralink,function = "gpio";
        };
        uartf_gpio {
            ralink,group = "uartf";
            ralink,function = "gpio uartf";
        };
    };
};

完整的MT7620a.dts内容如下:

/dts-v1/;
/include/ "mt7620a.dtsi"
/ {
        compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc";
        model = "Ralink MT7620a + MT7610e evaluation board";
        chosen {
                bootargs = "console=ttyS1,57600";
        };
        palmbus@10000000 {
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                                #address-cells = <1>;
                                #size-cells = <1>;
                                compatible = "en25q64";
                                reg = <0 0>;
                                linux,modalias = "m25p80", "en25q64";
                                spi-max-frequency = <10000000>;
                                partition@0 {
                                        label = "u-boot";
                                        reg = <0x0 0x30000>;
                                        read-only;
                                };
                                partition@30000 {
                                        label = "u-boot-env";
                                        reg = <0x30000 0x10000>;
                                        read-only;
                                };

                                factory: partition@40000 {
                                        label = "factory";
                                        reg = <0x40000 0x10000>;
                                        read-only;
                                };
                                partition@50000 {
                                        label = "firmware";
                                        reg = <0x50000 0x1fb0000>;
                                };
                        };
                };
                uart@500 {
                        status = "okay";
                };
        };
        pinctrl {
                state_default: pinctrl0 {
                        gpio {
                                ralink,group = "i2c";
                                ralink,function = "gpio";
                        };
                        uartf_gpio {
                                ralink,group = "uartf";
                                ralink,function = "gpio uartf";
                        };
                };
        };
        ethernet@10100000 {
                status = "okay";
                mtd-mac-address = <&factory 0x4>;
                pinctrl-names = "default";
                pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>;
                ralink,port-map = "llllw";
//              port@4 {
//                      status = "okay";
//                      phy-mode = "rgmii";
//                      phy-handle = <&phy4>;
//              };
//              port@5 {
//                      status = "okay";
//                      phy-mode = "rgmii";
//                      phy-handle = <&phy5>;
//              };
//              mdio-bus {
//                      status = "okay";
//
//                      phy4: ethernet-phy@4 {
//                              reg = <4>;
//                              phy-mode = "rgmii";
//                      };
//
//                      phy5: ethernet-phy@5 {
//                              reg = <5>;
//                              phy-mode = "rgmii";
//                      };
//              };
        };
        wmac@10180000 {
                ralink,mtd-eeprom = <&factory 0>;
        };
        gsw@10110000 {
                ralink,port4 = "gmac";
        };
        sdhci@10130000 {
                status = "okay";
        };
        pcie@10140000 {
                status = "okay";
        };
        gpio-keys-polled {
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
                poll-interval = <20>;
                s2 {
                        label = "S2";
                        gpios = <&gpio0 1 1>;
                        linux,code = <0x100>;
                };
                s3 {
                        label = "S3";
                        gpios = <&gpio0 2 1>;
                        linux,code = <0x101>;
                };
        };
        ehci@101c0000 {
                status = "okay";
        };
        ohci@101c1000 {
                status = "okay";
        };
};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值