1/* 2 * Copyright (C) 2015-2017 I2SE GmbH <info@i2se.com> 3 * Copyright (C) 2016 Michael Heimpold <mhei@heimpold.de> 4 * 5 * The code contained herein is licensed under the GNU General Public 6 * License. You may obtain a copy of the GNU General Public License 7 * Version 2 or later at the following locations: 8 * 9 * http://www.opensource.org/licenses/gpl-license.html 10 * http://www.gnu.org/copyleft/gpl.html 11 */ 12 13/dts-v1/; 14#include <dt-bindings/interrupt-controller/irq.h> 15#include <dt-bindings/input/input.h> 16#include <dt-bindings/gpio/gpio.h> 17#include "imx28.dtsi" 18 19/ { 20 model = "I2SE Duckbill 2 EnOcean"; 21 compatible = "i2se,duckbill-2-enocean", "i2se,duckbill-2", "fsl,imx28"; 22 23 memory@40000000 { 24 reg = <0x40000000 0x08000000>; 25 }; 26 27 apb@80000000 { 28 apbh@80000000 { 29 ssp0: ssp@80010000 { 30 compatible = "fsl,imx28-mmc"; 31 pinctrl-names = "default"; 32 pinctrl-0 = <&mmc0_8bit_pins_a 33 &mmc0_cd_cfg &mmc0_sck_cfg>; 34 bus-width = <8>; 35 vmmc-supply = <®_3p3v>; 36 status = "okay"; 37 non-removable; 38 }; 39 40 ssp2: ssp@80014000 { 41 compatible = "fsl,imx28-mmc"; 42 pinctrl-names = "default"; 43 pinctrl-0 = <&mmc2_4bit_pins_b 44 &mmc2_cd_cfg &mmc2_sck_cfg_b>; 45 bus-width = <4>; 46 vmmc-supply = <®_3p3v>; 47 status = "okay"; 48 }; 49 50 pinctrl@80018000 { 51 pinctrl-names = "default"; 52 pinctrl-0 = <&hog_pins_a>; 53 54 hog_pins_a: hog@0 { 55 reg = <0>; 56 fsl,pinmux-ids = < 57 MX28_PAD_LCD_D17__GPIO_1_17 /* Revision detection */ 58 >; 59 fsl,drive-strength = <MXS_DRIVE_4mA>; 60 fsl,voltage = <MXS_VOLTAGE_HIGH>; 61 fsl,pull-up = <MXS_PULL_DISABLE>; 62 }; 63 64 mac0_phy_reset_pin: mac0-phy-reset@0 { 65 reg = <0>; 66 fsl,pinmux-ids = < 67 MX28_PAD_GPMI_ALE__GPIO_0_26 /* PHY Reset */ 68 >; 69 fsl,drive-strength = <MXS_DRIVE_4mA>; 70 fsl,voltage = <MXS_VOLTAGE_HIGH>; 71 fsl,pull-up = <MXS_PULL_DISABLE>; 72 }; 73 74 mac0_phy_int_pin: mac0-phy-int@0 { 75 reg = <0>; 76 fsl,pinmux-ids = < 77 MX28_PAD_GPMI_D07__GPIO_0_7 /* PHY Interrupt */ 78 >; 79 fsl,drive-strength = <MXS_DRIVE_4mA>; 80 fsl,voltage = <MXS_VOLTAGE_HIGH>; 81 fsl,pull-up = <MXS_PULL_DISABLE>; 82 }; 83 84 led_pins: leds@0 { 85 reg = <0>; 86 fsl,pinmux-ids = < 87 MX28_PAD_SAIF0_MCLK__GPIO_3_20 88 MX28_PAD_SAIF0_LRCLK__GPIO_3_21 89 MX28_PAD_AUART0_CTS__GPIO_3_2 90 MX28_PAD_I2C0_SCL__GPIO_3_24 91 MX28_PAD_I2C0_SDA__GPIO_3_25 92 >; 93 fsl,drive-strength = <MXS_DRIVE_4mA>; 94 fsl,voltage = <MXS_VOLTAGE_HIGH>; 95 fsl,pull-up = <MXS_PULL_DISABLE>; 96 }; 97 98 enocean_button: enocean-button@0 { 99 reg = <0>; 100 fsl,pinmux-ids = < 101 MX28_PAD_AUART0_RTS__GPIO_3_3 102 >; 103 fsl,drive-strength = <MXS_DRIVE_4mA>; 104 fsl,voltage = <MXS_VOLTAGE_HIGH>; 105 fsl,pull-up = <MXS_PULL_DISABLE>; 106 }; 107 }; 108 }; 109 110 apbx@80040000 { 111 lradc@80050000 { 112 status = "okay"; 113 }; 114 115 auart0: serial@8006a000 { 116 pinctrl-names = "default"; 117 pinctrl-0 = <&auart0_2pins_a>; 118 status = "okay"; 119 }; 120 121 duart: serial@80074000 { 122 pinctrl-names = "default"; 123 pinctrl-0 = <&duart_pins_a>; 124 status = "okay"; 125 }; 126 127 usbphy0: usbphy@8007c000 { 128 status = "okay"; 129 }; 130 }; 131 }; 132 133 ahb@80080000 { 134 usb0: usb@80080000 { 135 status = "okay"; 136 dr_mode = "peripheral"; 137 }; 138 139 mac0: ethernet@800f0000 { 140 phy-mode = "rmii"; 141 pinctrl-names = "default"; 142 pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>; 143 phy-supply = <®_3p3v>; 144 phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; 145 phy-reset-duration = <25>; 146 phy-handle = <ðphy>; 147 status = "okay"; 148 149 mdio { 150 #address-cells = <1>; 151 #size-cells = <0>; 152 153 ethphy: ethernet-phy@0 { 154 compatible = "ethernet-phy-ieee802.3-c22"; 155 reg = <0>; 156 pinctrl-names = "default"; 157 pinctrl-0 = <&mac0_phy_int_pin>; 158 interrupt-parent = <&gpio0>; 159 interrupts = <7 IRQ_TYPE_EDGE_FALLING>; 160 max-speed = <100>; 161 }; 162 }; 163 }; 164 }; 165 166 reg_3p3v: regulator-3p3v { 167 compatible = "regulator-fixed"; 168 regulator-name = "3P3V"; 169 regulator-min-microvolt = <3300000>; 170 regulator-max-microvolt = <3300000>; 171 regulator-always-on; 172 }; 173 174 leds { 175 compatible = "gpio-leds"; 176 pinctrl-names = "default"; 177 pinctrl-0 = <&led_pins>; 178 179 status-red { 180 label = "duckbill:red:status"; 181 gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>; 182 linux,default-trigger = "default-on"; 183 }; 184 185 status-green { 186 label = "duckbill:green:status"; 187 gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>; 188 linux,default-trigger = "heartbeat"; 189 }; 190 191 enocean-blue { 192 label = "duckbill:blue:enocean"; 193 gpios = <&gpio3 24 GPIO_ACTIVE_LOW>; 194 }; 195 196 enocean-red { 197 label = "duckbill:red:enocean"; 198 gpios = <&gpio3 25 GPIO_ACTIVE_LOW>; 199 }; 200 201 enocean-green { 202 label = "duckbill:green:enocean"; 203 gpios = <&gpio3 2 GPIO_ACTIVE_LOW>; 204 }; 205 }; 206 207 gpio-keys { 208 compatible = "gpio-keys"; 209 pinctrl-names = "default"; 210 pinctrl-0 = <&enocean_button>; 211 212 enocean { 213 label = "EnOcean"; 214 linux,code = <KEY_NEW>; 215 gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>; 216 }; 217 }; 218}; 219