RK3588接交换芯片的驱动配置

RK3588开发板缺省接RTL8211F phy芯片,换成KS8794交换芯片,调试了很长时间,最后终于搞定。记录一下。

网上有很多说fixed-link的,开始都以为从KS8794的DTS入手,看来这个之后,应该在MAC的DTShttp://pro934ad4.pic3.ysjianzhan.cn/upload/Rockchip_Developer_Guide_Linux_MAC_TO_MAC_CN.pdf

//这个基本没用,只是作为一个SPI设备,可以配置KSZ8794内部寄存器

&spi2 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
    num-cs = <2>;

    ksz8794_rgmii: ksz8794@1 {
        compatible = "microchip,ksz8794";
        reg = <1>;
        status = "okay";
        chip_id = <0x8760>;

        //spi-max-frequency = <33000000>;
        //spi-cpha;
        //spi-cpol;

        ports {
            #address-cells = <1>;
            #size-cells = <0>;
        //    port@1 {
        //        reg = <1>;
        //        label = "lan1";
        //    };
        //    port@2 {
        //        reg = <2>;  
        //        label = "lan2";
        //    };
        //    port@3 {
        //        reg = <3>;
        //        label = "lan3";
        //    };
        /*    port@4 {
                reg = <4>;
                label = "cpu";
                ethernet = <&gmac1>;
                phy-mode = "rgmii-rxid";                
                fixed-link {  //不是在这个位置fixed-link
                    speed = <1000>;
                    full-duplex;
                    //pause;
                };
                
            };
        */
        };
    };
};

//mdio0外部接RTL8211F PHY

&mdio0 {
    rgmii_phy0: phy@1 {//定义了一个PHY
        compatible = "ethernet-phy-ieee802.3-c22";
        reg = <0x1>;
    };
};

//mdio1外部实际不接啥,原来开发板接RTL8211F PHY

&mdio1 {
    rgmii_phy1: phy@2 {
        compatible = "ethernet-phy-ieee802.3-c22";
        reg = <0x2>;
    };
};

//

&gmac0 {
    /* Use rgmii-rxid mode to disable rx delay inside Soc */
    phy-mode = "rgmii-rxid";
    clock_in_out = "output";

    snps,reset-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>;
    snps,reset-active-low;
    /* Reset time is 20ms, 100ms for rtl8211f */
    snps,reset-delays-us = <0 20000 100000>;

    pinctrl-names = "default";
    pinctrl-0 = <&gmac0_miim
             &gmac0_tx_bus2
             &gmac0_rx_bus2
             &gmac0_rgmii_clk
             &gmac0_rgmii_bus>;

    tx_delay = <0x44>;
    /* rx_delay = <0x4f>; */

    phy-handle = <&rgmii_phy0>;//明确外部接PHY
    status = "okay";
};

&gmac1 {
    /* Use rgmii-rxid mode to disable rx delay inside Soc */
    phy-mode = "rgmii-rxid";
    clock_in_out = "output";

    snps,reset-gpio = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>;
    snps,reset-active-low;
    /* Reset time is 20ms, 100ms for rtl8211f */
    snps,reset-delays-us = <0 20000 100000>;
    
        //assigned-clock-parents = <&cru SCLK_MAC>;
        //assigned-clock-rates = <125000000>;

    pinctrl-names = "default";
    //pinctrl-0 = <&gmac1_miim //这个PIN不再需要
    pinctrl-0 = <&gmac1_tx_bus2
             &gmac1_rx_bus2
             &gmac1_rgmii_clk
             &gmac1_rgmii_bus>;

    tx_delay = <0x44>;
    //rx_delay = <0x4f>;

    //phy-handle = <&rgmii_phy1>;//这个PHY不再需要
    status = "okay";
    fixed-link { //这个需要
                speed = <1000>;
                full-duplex;
        };
};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值