Subject: [PATCH v2] ARM: dts: am57xx-beagle-x15: Add dual ethernet

From: [email-masked] (Nishanth Menon)
Date: Thu, 4 Dec 2014 15:59:11 -0600

On 12/04/2014 03:02 PM, Felipe Balbi wrote:
> Add CPSW DT binding to beagle X15 DTS in order to
> get ethernet working with this board.
> 
> Note that we're also adding sleep state which will
> place all pins in mux mode 15 - which means "driver
> off" - thus conserving power.
> 
> Signed-off-by: Nishanth Menon <[email-masked]>
> Signed-off-by: Sekhar Nori <[email-masked]>
> Signed-off-by: Felipe Balbi <[email-masked]>
> ---
> 
> Changes since v1:
> 	- removed duplicated SoB from myself
> 	- Fixed s/Slave 1/Slave2/ in one comment
> 	- slightly improved commit log
> 
>  arch/arm/boot/dts/am57xx-beagle-x15.dts | 106 ++++++++++++++++++++++++++++++++
>  1 file changed, 106 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts
> index 49edbda..6c2e8e4 100644
> --- a/arch/arm/boot/dts/am57xx-beagle-x15.dts
> +++ b/arch/arm/boot/dts/am57xx-beagle-x15.dts
> @@ -140,6 +140,86 @@
>  		>;
>  	};
>  
> +	cpsw_pins_default: cpsw_pins_default {
> +		pinctrl-single,pins = <
> +			/* Slave 1 */
> +			0x250 (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_tclk */
> +			0x254 (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_tctl */
> +			0x258 (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_td3 */
> +			0x25c (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_td2 */
> +			0x260 (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_td1 */
> +			0x264 (PIN_OUTPUT | MUX_MODE0)	/* rgmii1_td0 */
> +			0x268 (PIN_INPUT | MUX_MODE0)	/* rgmii1_rclk */
> +			0x26c (PIN_INPUT | MUX_MODE0)	/* rgmii1_rctl */
> +			0x270 (PIN_INPUT | MUX_MODE0)	/* rgmii1_rd3 */
> +			0x274 (PIN_INPUT | MUX_MODE0)	/* rgmii1_rd2 */
> +			0x278 (PIN_INPUT | MUX_MODE0)	/* rgmii1_rd1 */
> +			0x27c (PIN_INPUT | MUX_MODE0)	/* rgmii1_rd0 */
> +
> +			/* Slave 2 */
> +			0x198 (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_tclk */
> +			0x19c (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_tctl */
> +			0x1a0 (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_td3 */
> +			0x1a4 (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_td2 */
> +			0x1a8 (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_td1 */
> +			0x1ac (PIN_OUTPUT | MUX_MODE3)	/* rgmii2_td0 */
> +			0x1b0 (PIN_INPUT | MUX_MODE3)	/* rgmii2_rclk */
> +			0x1b4 (PIN_INPUT | MUX_MODE3)	/* rgmii2_rctl */
> +			0x1b8 (PIN_INPUT | MUX_MODE3)	/* rgmii2_rd3 */
> +			0x1bc (PIN_INPUT | MUX_MODE3)	/* rgmii2_rd2 */
> +			0x1c0 (PIN_INPUT | MUX_MODE3)	/* rgmii2_rd1 */
> +			0x1c4 (PIN_INPUT | MUX_MODE3)	/* rgmii2_rd0 */
> +		>;
> +
> +	};
> +
> +	cpsw_pins_sleep: cpsw_pins_sleep {
> +		pinctrl-single,pins = <
> +			/* Slave 1 */
> +			0x250 (PIN_INPUT | MUX_MODE15)
> +			0x254 (PIN_INPUT | MUX_MODE15)
> +			0x258 (PIN_INPUT | MUX_MODE15)
> +			0x25c (PIN_INPUT | MUX_MODE15)
> +			0x260 (PIN_INPUT | MUX_MODE15)
> +			0x264 (PIN_INPUT | MUX_MODE15)
> +			0x268 (PIN_INPUT | MUX_MODE15)
> +			0x26c (PIN_INPUT | MUX_MODE15)
> +			0x270 (PIN_INPUT | MUX_MODE15)
> +			0x274 (PIN_INPUT | MUX_MODE15)
> +			0x278 (PIN_INPUT | MUX_MODE15)
> +			0x27c (PIN_INPUT | MUX_MODE15)
> +
> +			/* Slave 2 */
> +			0x198 (PIN_INPUT | MUX_MODE15)
> +			0x19c (PIN_INPUT | MUX_MODE15)
> +			0x1a0 (PIN_INPUT | MUX_MODE15)
> +			0x1a4 (PIN_INPUT | MUX_MODE15)
> +			0x1a8 (PIN_INPUT | MUX_MODE15)
> +			0x1ac (PIN_INPUT | MUX_MODE15)
> +			0x1b0 (PIN_INPUT | MUX_MODE15)
> +			0x1b4 (PIN_INPUT | MUX_MODE15)
> +			0x1b8 (PIN_INPUT | MUX_MODE15)
> +			0x1bc (PIN_INPUT | MUX_MODE15)
> +			0x1c0 (PIN_INPUT | MUX_MODE15)
> +			0x1c4 (PIN_INPUT | MUX_MODE15)
> +		>;
> +	};
> +
> +	davinci_mdio_pins_default: davinci_mdio_pins_default {
> +		pinctrl-single,pins = <
> +			/* MDIO */
> +			0x23c (PIN_OUTPUT_PULLUP | MUX_MODE0)	/* mdio_mclk */
> +			0x240 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mdio_d */
> +		>;
> +	};
> +
> +	davinci_mdio_pins_sleep: davinci_mdio_pins_sleep {
> +		pinctrl-single,pins = <
> +			0x23c (PIN_INPUT | MUX_MODE15)
> +			0x240 (PIN_INPUT | MUX_MODE15)
> +		>;
> +	};
> +
>  	tps659038_pins_default: tps659038_pins_default {
>  		pinctrl-single,pins = <
>  			0x418 (PIN_INPUT_PULLUP | MUX_MODE14)	/* wakeup0.gpio1_0 */
> @@ -365,6 +445,32 @@
>  	pinctrl-0 = <&uart3_pins_default>;
>  };
>  
> +&mac {
> +	status = "okay";
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <&cpsw_pins_default>;
> +	pinctrl-1 = <&cpsw_pins_sleep>;
> +	dual_emac;
> +};
> +
> +&cpsw_emac0 {
> +	phy_id = <&davinci_mdio>, <1>;
> +	phy-mode = "rgmii";
> +	dual_emac_res_vlan = <1>;
> +};
> +
> +&cpsw_emac1 {
> +	phy_id = <&davinci_mdio>, <2>;
> +	phy-mode = "rgmii";
> +	dual_emac_res_vlan = <2>;
> +};
> +
> +&davinci_mdio {
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <&davinci_mdio_pins_default>;
> +	pinctrl-1 = <&davinci_mdio_pins_sleep>;
> +};
> +
>  &mmc1 {
>  	status = "okay";
>  
> 
Yep, looks better thanks.

depends on the ethernet dts and x15 patches queued previously for 3.19.

https://git.kernel.org/cgit/linux/kernel/git/tmlind/linux-omap.git/log/?h=omap-for-v3.19/dt-v2

-- 
Regards,
Nishanth Menon