1*71423435SHeiko Schocher/* 2*71423435SHeiko Schocher * Support for Siemens DRACO board 3*71423435SHeiko Schocher * 4*71423435SHeiko Schocher * Copyright (C) 2014 - Lukas Stockmann <lukas.stockmann@siemens.com> 5*71423435SHeiko Schocher * 6*71423435SHeiko Schocher * This file is licensed under the terms of the GNU General Public License 7*71423435SHeiko Schocher * version 2. This program is licensed "as is" without any warranty of any 8*71423435SHeiko Schocher * kind, whether express or implied. 9*71423435SHeiko Schocher */ 10*71423435SHeiko Schocher 11*71423435SHeiko Schocher/dts-v1/; 12*71423435SHeiko Schocher 13*71423435SHeiko Schocher#include "am33xx.dtsi" 14*71423435SHeiko Schocher#include "am335x-draco.dtsi" 15*71423435SHeiko Schocher#include <dt-bindings/input/input.h> 16*71423435SHeiko Schocher 17*71423435SHeiko Schocher/ { 18*71423435SHeiko Schocher model = "Siemens DRACO"; 19*71423435SHeiko Schocher compatible = "siemens,draco", "ti,am33xx"; 20*71423435SHeiko Schocher 21*71423435SHeiko Schocher /* ethernet alias is needed for the MAC address passing from U-Boot */ 22*71423435SHeiko Schocher aliases { 23*71423435SHeiko Schocher ethernet0 = &cpsw_emac0; 24*71423435SHeiko Schocher mdio-gpio0 = &mdio0; 25*71423435SHeiko Schocher }; 26*71423435SHeiko Schocher 27*71423435SHeiko Schocher gpio-keys { 28*71423435SHeiko Schocher compatible = "gpio-keys"; 29*71423435SHeiko Schocher button0 { 30*71423435SHeiko Schocher label = "button0"; 31*71423435SHeiko Schocher gpios = <&gpio0 27 GPIO_ACTIVE_LOW>; 32*71423435SHeiko Schocher linux,code = <KEY_F1>; /* button0 */ 33*71423435SHeiko Schocher }; 34*71423435SHeiko Schocher button1 { 35*71423435SHeiko Schocher label = "button1"; 36*71423435SHeiko Schocher gpios = <&gpio2 23 GPIO_ACTIVE_LOW>; 37*71423435SHeiko Schocher linux,code = <KEY_F2>; /* button1 */ 38*71423435SHeiko Schocher }; 39*71423435SHeiko Schocher }; 40*71423435SHeiko Schocher 41*71423435SHeiko Schocher ocp { 42*71423435SHeiko Schocher debugss: debugss@4b000000 { 43*71423435SHeiko Schocher compatible = "ti,debugss"; 44*71423435SHeiko Schocher ti,hwmods = "debugss"; 45*71423435SHeiko Schocher reg = <0x4b000000 1000000>; 46*71423435SHeiko Schocher status = "disabled"; 47*71423435SHeiko Schocher }; 48*71423435SHeiko Schocher }; 49*71423435SHeiko Schocher}; 50*71423435SHeiko Schocher 51*71423435SHeiko Schocher&am33xx_pinmux { 52*71423435SHeiko Schocher pinctrl-names = "default"; 53*71423435SHeiko Schocher pinctrl-0 = <&gpio_mux_pins>; 54*71423435SHeiko Schocher 55*71423435SHeiko Schocher gpio_mux_pins: gpio_mux_pins { 56*71423435SHeiko Schocher pinctrl-single,pins = < 57*71423435SHeiko Schocher 0x1d0 (PIN_INPUT | MUX_MODE0) /* tms jtag */ 58*71423435SHeiko Schocher 0x1d4 (PIN_INPUT | MUX_MODE0) /* tdi jtag */ 59*71423435SHeiko Schocher 0x1d8 (PIN_OUTPUT | MUX_MODE0) /* tdo jtag */ 60*71423435SHeiko Schocher 0x1dc (PIN_INPUT | MUX_MODE0) /* tck jtag */ 61*71423435SHeiko Schocher 0x1e0 (PIN_INPUT | MUX_MODE0) /* trstn jtag */ 62*71423435SHeiko Schocher >; 63*71423435SHeiko Schocher }; 64*71423435SHeiko Schocher 65*71423435SHeiko Schocher cpsw_default: cpsw_default { 66*71423435SHeiko Schocher pinctrl-single,pins = < 67*71423435SHeiko Schocher 0x0E8 (PIN_INPUT_PULLUP | MUX_MODE7) /* lcd_plck FIX STO should be a OUTPUT driven high*/ 68*71423435SHeiko Schocher 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */ 69*71423435SHeiko Schocher 0x114 (PIN_OUTPUT | MUX_MODE1) /* mii1_txen.mii1_txen */ 70*71423435SHeiko Schocher 0x124 (PIN_OUTPUT | MUX_MODE1) /* mii1_txd1.mii1_txd1 */ 71*71423435SHeiko Schocher 0x128 (PIN_OUTPUT | MUX_MODE1) /* mii1_txd0.mii1_txd0 */ 72*71423435SHeiko Schocher 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.mii1_rxd1 */ 73*71423435SHeiko Schocher 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.mii1_rxd0 */ 74*71423435SHeiko Schocher 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_refclk.rmii1_refclk */ 75*71423435SHeiko Schocher >; 76*71423435SHeiko Schocher }; 77*71423435SHeiko Schocher 78*71423435SHeiko Schocher cpsw_sleep: cpsw_sleep { 79*71423435SHeiko Schocher pinctrl-single,pins = < 80*71423435SHeiko Schocher 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) 81*71423435SHeiko Schocher 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) 82*71423435SHeiko Schocher 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) 83*71423435SHeiko Schocher 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) 84*71423435SHeiko Schocher 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) 85*71423435SHeiko Schocher 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) 86*71423435SHeiko Schocher 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) 87*71423435SHeiko Schocher >; 88*71423435SHeiko Schocher }; 89*71423435SHeiko Schocher 90*71423435SHeiko Schocher davinci_mdio_default: davinci_mdio_default { 91*71423435SHeiko Schocher pinctrl-single,pins = < 92*71423435SHeiko Schocher /* MDIO */ 93*71423435SHeiko Schocher 0x148 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ 94*71423435SHeiko Schocher 0x14c (PIN_OUTPUT | MUX_MODE0) /* mdio_clk.mdio_clk */ 95*71423435SHeiko Schocher >; 96*71423435SHeiko Schocher }; 97*71423435SHeiko Schocher 98*71423435SHeiko Schocher davinci_mdio_sleep: davinci_mdio_sleep { 99*71423435SHeiko Schocher pinctrl-single,pins = < 100*71423435SHeiko Schocher /* MDIO reset value */ 101*71423435SHeiko Schocher 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) 102*71423435SHeiko Schocher 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) 103*71423435SHeiko Schocher >; 104*71423435SHeiko Schocher }; 105*71423435SHeiko Schocher 106*71423435SHeiko Schocher gpio_mdio_default: gpio_mdio_default { 107*71423435SHeiko Schocher pinctrl-single,pins = < 108*71423435SHeiko Schocher /* MDIO via GPIO */ 109*71423435SHeiko Schocher 0x148 (PIN_INPUT | MUX_MODE7) /* mdio_data.mdio_data GPIO0_0 */ 110*71423435SHeiko Schocher 0x14c (PIN_OUTPUT | MUX_MODE7) /* mdio_clk.mdio_clk GPIO0_1 */ 111*71423435SHeiko Schocher >; 112*71423435SHeiko Schocher }; 113*71423435SHeiko Schocher}; 114*71423435SHeiko Schocher 115*71423435SHeiko Schocher&mac { 116*71423435SHeiko Schocher pinctrl-names = "default", "sleep"; 117*71423435SHeiko Schocher pinctrl-0 = <&cpsw_default>; 118*71423435SHeiko Schocher pinctrl-1 = <&cpsw_sleep>; 119*71423435SHeiko Schocher slaves = <1>; /* use only one emac if */ 120*71423435SHeiko Schocher 121*71423435SHeiko Schocher mdio0: gpio { 122*71423435SHeiko Schocher compatible = "virtual,mdio-gpio"; 123*71423435SHeiko Schocher pinctrl-names = "default"; 124*71423435SHeiko Schocher pinctrl-0 = <&gpio_mdio_default>; 125*71423435SHeiko Schocher 126*71423435SHeiko Schocher #address-cells = <1>; 127*71423435SHeiko Schocher #size-cells = <0>; 128*71423435SHeiko Schocher gpios = <&gpio0 1 GPIO_ACTIVE_HIGH /* MDIO-CLK */ 129*71423435SHeiko Schocher &gpio0 0 GPIO_ACTIVE_HIGH>; /* MDIO-DATA */ 130*71423435SHeiko Schocher 131*71423435SHeiko Schocher phy0: ethernet-phy@1 { 132*71423435SHeiko Schocher reg = <0>; 133*71423435SHeiko Schocher }; 134*71423435SHeiko Schocher }; 135*71423435SHeiko Schocher}; 136*71423435SHeiko Schocher 137*71423435SHeiko Schocher/* Disable davinci/am335x mdio interface on this platform */ 138*71423435SHeiko Schocher&davinci_mdio { 139*71423435SHeiko Schocher pinctrl-names = "default", "sleep"; 140*71423435SHeiko Schocher pinctrl-0 = <&davinci_mdio_default>; 141*71423435SHeiko Schocher pinctrl-1 = <&davinci_mdio_sleep>; 142*71423435SHeiko Schocher status = "disabled"; 143*71423435SHeiko Schocher}; 144*71423435SHeiko Schocher 145*71423435SHeiko Schocher&cpsw_emac0 { 146*71423435SHeiko Schocher phy_id = <&mdio0>, <0>; 147*71423435SHeiko Schocher phy-mode = "rmii"; 148*71423435SHeiko Schocher}; 149*71423435SHeiko Schocher 150*71423435SHeiko Schocher&phy_sel { 151*71423435SHeiko Schocher rmii-clock-ext; 152*71423435SHeiko Schocher}; 153