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