关键词:rk3288; 以太网;rockchip,px30-gmac;rockchip,rk3128-gmac;rockchip,rk3228-gmac;rockchip,rk3288-gmac;rockchip,rk3308-mac;rockchip,rk3328-gmac;rockchip,rk3366-gmac;rockchip,rk3368-gmac;rockchip,rk3399-gmac;rockchip,rv1108-gmac;
rk3288 — gmac dts配置
1、GMAC简介:
GMAC (Rockchip SoC RK3288 10/100/1000 Ethernet driver),即指10/100/1000以太网;
2、属性值配置:
- compatible: 可以配置成:"rockchip,<name>-gmac" or "rockchip,<name>-mac" "rockchip,px30-gmac": found on PX30 SoCs "rockchip,rk3128-gmac": found on RK312x SoCs "rockchip,rk3228-gmac": found on RK322x SoCs "rockchip,rk3288-gmac": found on RK3288 SoCs "rockchip,rk3308-mac": found on RK3308 SoCs "rockchip,rk3328-gmac": found on RK3328 SoCs "rockchip,rk3366-gmac": found on RK3366 SoCs "rockchip,rk3368-gmac": found on RK3368 SoCs "rockchip,rk3399-gmac": found on RK3399 SoCs "rockchip,rv1108-gmac": found on RV1108 SoCs - reg: 配置gmac的物理基地址,以及寄存器的空间大小; - interrupts: 配置gmac的中断号; - interrupt-names: 配置中断的名称:"macirq". - rockchip,grf: 指定grf,用于配置速度和模式; - clocks: <&cru SCLK_MAC>: 配置主时钟,该时钟可以从PLL获取,也可以从外部PHY获取; <&cru SCLK_MAC_PLL>: PLL clock for SCLK_MAC <&cru SCLK_MAC_RX>: clock gate for RX <&cru SCLK_MAC_TX>: clock gate for TX <&cru SCLK_MACREF>: clock gate for RMII referce clock <&cru SCLK_MACREF_OUT> clock gate for RMII reference clock output <&cru ACLK_GMAC>: AXI clock gate for GMAC <&cru PCLK_GMAC>: APB clock gate for GMAC - clock-names: 配置时钟的名称; - phy-mode: 配置phy的模式; - pinctrl-names: 配置pinctrl的名称; - pinctrl-0: pinctrl配置成 <&rgmii_pins> or <&rmii_pins>. - clock_in_out: 选择时钟,对于 RGMII, 必须配置成 "input", 代表主时钟为(125MHz) 该时钟不是由芯片PLL提供,而是由外部PHY提供; 对于 RMII, "input" 代表时钟(50MHz)由于PHY提供时钟;如果为output代表GMAC提供时钟; - snps,reset-gpio 配置phy复位的gpio脚. - snps,reset-active-low 配置该值,说明低电平触发phy复位; - assigned-clocks: 主时钟,配置成 <&cru SCLK_MAC>; - assigned-clock-parents 主时钟的parent时钟,可以是<&ext_gmac> 或者 <&cru SCLK_MAC_PLL>. - tx_delay: TXD timing 延迟值,取值范围0-0x7F,0x30是默认值; - rx_delay: RXD timing 延迟值,取值范围0-0x7F,0x10是默认值; - phy-supply: 配置phy的电源;
3、以rk3288为例:
Example: gmac: ethernet@ff290000 { compatible = "rockchip,rk3288-gmac"; reg = <0xff290000 0x10000>; interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "macirq"; rockchip,grf = <&grf>; clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>, <&cru PCLK_GMAC>; clock-names = "stmmaceth", "mac_clk_rx", "mac_clk_tx", "clk_mac_ref", "clk_mac_refout", "aclk_mac", "pclk_mac"; phy-mode = "rgmii"; pinctrl-names = "default"; pinctrl-0 = <&rgmii_pins /*&rmii_pins*/>; clock_in_out = "input"; snps,reset-gpio = <&gpio4 7 0>; snps,reset-active-low; assigned-clocks = <&cru SCLK_MAC>; assigned-clock-parents = <&ext_gmac>; tx_delay = <0x30>; rx_delay = <0x10>; status = "ok"; };