| @@ -0,0 +1,300 @@ |
| | 1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| | 2 | /* |
| | 3 | * Copyright (c) 2019 BayLibre SAS. All rights reserved. |
| | 4 | */ |
| | 5 | |
| | 6 | /dts-v1/; |
| | 7 | |
| | 8 | #include "meson-sm1.dtsi" |
| | 9 | #include <dt-bindings/gpio/gpio.h> |
| | 10 | #include <dt-bindings/input/input.h> |
| | 11 | #include <dt-bindings/gpio/meson-g12a-gpio.h> |
| | 12 | |
| | 13 | / { |
| | 14 | compatible = "seirobotics,sei610", "amlogic,sm1"; |
| | 15 | model = "SEI Robotics SEI610"; |
| | 16 | |
| | 17 | aliases { |
| | 18 | serial0 = &uart_AO; |
| | 19 | ethernet0 = ðmac; |
| | 20 | }; |
| | 21 | |
| | 22 | chosen { |
| | 23 | stdout-path = "serial0:115200n8"; |
| | 24 | }; |
| | 25 | |
| | 26 | emmc_pwrseq: emmc-pwrseq { |
| | 27 | compatible = "mmc-pwrseq-emmc"; |
| | 28 | reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; |
| | 29 | }; |
| | 30 | |
| | 31 | gpio-keys { |
| | 32 | compatible = "gpio-keys-polled"; |
| | 33 | poll-interval = <100>; |
| | 34 | |
| | 35 | key1 { |
| | 36 | label = "A"; |
| | 37 | linux,code = <BTN_0>; |
| | 38 | gpios = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>; |
| | 39 | }; |
| | 40 | |
| | 41 | key2 { |
| | 42 | label = "B"; |
| | 43 | linux,code = <BTN_1>; |
| | 44 | gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>; |
| | 45 | }; |
| | 46 | |
| | 47 | key3 { |
| | 48 | label = "C"; |
| | 49 | linux,code = <BTN_2>; |
| | 50 | gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>; |
| | 51 | }; |
| | 52 | }; |
| | 53 | |
| | 54 | leds { |
| | 55 | compatible = "gpio-leds"; |
| | 56 | |
| | 57 | bluetooth { |
| | 58 | label = "sei610:blue:bt"; |
| | 59 | gpios = <&gpio GPIOC_7 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; |
| | 60 | default-state = "off"; |
| | 61 | }; |
| | 62 | }; |
| | 63 | |
| | 64 | pwmleds { |
| | 65 | compatible = "pwm-leds"; |
| | 66 | |
| | 67 | power { |
| | 68 | label = "sei610:red:power"; |
| | 69 | pwms = <&pwm_AO_ab 0 30518 0>; |
| | 70 | max-brightness = <255>; |
| | 71 | linux,default-trigger = "default-on"; |
| | 72 | active-low; |
| | 73 | }; |
| | 74 | }; |
| | 75 | |
| | 76 | memory@0 { |
| | 77 | device_type = "memory"; |
| | 78 | reg = <0x0 0x0 0x0 0x40000000>; |
| | 79 | }; |
| | 80 | |
| | 81 | ao_5v: regulator-ao_5v { |
| | 82 | compatible = "regulator-fixed"; |
| | 83 | regulator-name = "AO_5V"; |
| | 84 | regulator-min-microvolt = <5000000>; |
| | 85 | regulator-max-microvolt = <5000000>; |
| | 86 | vin-supply = <&dc_in>; |
| | 87 | regulator-always-on; |
| | 88 | }; |
| | 89 | |
| | 90 | dc_in: regulator-dc_in { |
| | 91 | compatible = "regulator-fixed"; |
| | 92 | regulator-name = "DC_IN"; |
| | 93 | regulator-min-microvolt = <5000000>; |
| | 94 | regulator-max-microvolt = <5000000>; |
| | 95 | regulator-always-on; |
| | 96 | }; |
| | 97 | |
| | 98 | emmc_1v8: regulator-emmc_1v8 { |
| | 99 | compatible = "regulator-fixed"; |
| | 100 | regulator-name = "EMMC_1V8"; |
| | 101 | regulator-min-microvolt = <1800000>; |
| | 102 | regulator-max-microvolt = <1800000>; |
| | 103 | vin-supply = <&vddao_3v3>; |
| | 104 | regulator-always-on; |
| | 105 | }; |
| | 106 | |
| | 107 | vddao_3v3: regulator-vddao_3v3 { |
| | 108 | compatible = "regulator-fixed"; |
| | 109 | regulator-name = "VDDAO_3V3"; |
| | 110 | regulator-min-microvolt = <3300000>; |
| | 111 | regulator-max-microvolt = <3300000>; |
| | 112 | vin-supply = <&dc_in>; |
| | 113 | regulator-always-on; |
| | 114 | }; |
| | 115 | |
| | 116 | /* Used by Tuner, RGB Led & IR Emitter LED array */ |
| | 117 | vddao_3v3_t: regulator-vddao_3v3_t { |
| | 118 | compatible = "regulator-fixed"; |
| | 119 | regulator-name = "VDDAO_3V3_T"; |
| | 120 | regulator-min-microvolt = <3300000>; |
| | 121 | regulator-max-microvolt = <3300000>; |
| | 122 | vin-supply = <&vddao_3v3>; |
| | 123 | gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; |
| | 124 | enable-active-low; |
| | 125 | regulator-always-on; |
| | 126 | }; |
| | 127 | |
| | 128 | vddio_ao1v8: regulator-vddio_ao1v8 { |
| | 129 | compatible = "regulator-fixed"; |
| | 130 | regulator-name = "VDDIO_AO1V8"; |
| | 131 | regulator-min-microvolt = <1800000>; |
| | 132 | regulator-max-microvolt = <1800000>; |
| | 133 | vin-supply = <&vddao_3v3>; |
| | 134 | regulator-always-on; |
| | 135 | }; |
| | 136 | |
| | 137 | reserved-memory { |
| | 138 | /* TEE Reserved Memory */ |
| | 139 | bl32_reserved: bl32@5000000 { |
| | 140 | reg = <0x0 0x05300000 0x0 0x2000000>; |
| | 141 | no-map; |
| | 142 | }; |
| | 143 | }; |
| | 144 | |
| | 145 | sdio_pwrseq: sdio-pwrseq { |
| | 146 | compatible = "mmc-pwrseq-simple"; |
| | 147 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; |
| | 148 | clocks = <&wifi32k>; |
| | 149 | clock-names = "ext_clock"; |
| | 150 | }; |
| | 151 | |
| | 152 | wifi32k: wifi32k { |
| | 153 | compatible = "pwm-clock"; |
| | 154 | #clock-cells = <0>; |
| | 155 | clock-frequency = <32768>; |
| | 156 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ |
| | 157 | }; |
| | 158 | }; |
| | 159 | |
| | 160 | &cec_AO { |
| | 161 | pinctrl-0 = <&cec_ao_a_h_pins>; |
| | 162 | pinctrl-names = "default"; |
| | 163 | status = "disabled"; |
| | 164 | hdmi-phandle = <&hdmi_tx>; |
| | 165 | }; |
| | 166 | |
| | 167 | &cecb_AO { |
| | 168 | pinctrl-0 = <&cec_ao_b_h_pins>; |
| | 169 | pinctrl-names = "default"; |
| | 170 | status = "okay"; |
| | 171 | hdmi-phandle = <&hdmi_tx>; |
| | 172 | }; |
| | 173 | |
| | 174 | ðmac { |
| | 175 | status = "okay"; |
| | 176 | phy-handle = <&internal_ephy>; |
| | 177 | phy-mode = "rmii"; |
| | 178 | }; |
| | 179 | |
| | 180 | &i2c3 { |
| | 181 | status = "okay"; |
| | 182 | pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; |
| | 183 | pinctrl-names = "default"; |
| | 184 | }; |
| | 185 | |
| | 186 | &ir { |
| | 187 | status = "okay"; |
| | 188 | pinctrl-0 = <&remote_input_ao_pins>; |
| | 189 | pinctrl-names = "default"; |
| | 190 | }; |
| | 191 | |
| | 192 | &pwm_AO_ab { |
| | 193 | status = "okay"; |
| | 194 | pinctrl-0 = <&pwm_ao_a_pins>; |
| | 195 | pinctrl-names = "default"; |
| | 196 | clocks = <&xtal>; |
| | 197 | clock-names = "clkin0"; |
| | 198 | }; |
| | 199 | |
| | 200 | &pwm_ef { |
| | 201 | status = "okay"; |
| | 202 | pinctrl-0 = <&pwm_e_pins>; |
| | 203 | pinctrl-names = "default"; |
| | 204 | clocks = <&xtal>; |
| | 205 | clock-names = "clkin0"; |
| | 206 | }; |
| | 207 | |
| | 208 | &saradc { |
| | 209 | status = "okay"; |
| | 210 | vref-supply = <&vddio_ao1v8>; |
| | 211 | }; |
| | 212 | |
| | 213 | /* SDIO */ |
| | 214 | &sd_emmc_a { |
| | 215 | status = "okay"; |
| | 216 | pinctrl-0 = <&sdio_pins>; |
| | 217 | pinctrl-1 = <&sdio_clk_gate_pins>; |
| | 218 | pinctrl-names = "default", "clk-gate"; |
| | 219 | #address-cells = <1>; |
| | 220 | #size-cells = <0>; |
| | 221 | |
| | 222 | bus-width = <4>; |
| | 223 | cap-sd-highspeed; |
| | 224 | sd-uhs-sdr50; |
| | 225 | max-frequency = <100000000>; |
| | 226 | |
| | 227 | non-removable; |
| | 228 | disable-wp; |
| | 229 | |
| | 230 | mmc-pwrseq = <&sdio_pwrseq>; |
| | 231 | |
| | 232 | vmmc-supply = <&vddao_3v3>; |
| | 233 | vqmmc-supply = <&vddio_ao1v8>; |
| | 234 | |
| | 235 | brcmf: wifi@1 { |
| | 236 | reg = <1>; |
| | 237 | compatible = "brcm,bcm4329-fmac"; |
| | 238 | }; |
| | 239 | }; |
| | 240 | |
| | 241 | /* SD card */ |
| | 242 | &sd_emmc_b { |
| | 243 | status = "okay"; |
| | 244 | pinctrl-0 = <&sdcard_c_pins>; |
| | 245 | pinctrl-1 = <&sdcard_clk_gate_c_pins>; |
| | 246 | pinctrl-names = "default", "clk-gate"; |
| | 247 | |
| | 248 | bus-width = <4>; |
| | 249 | cap-sd-highspeed; |
| | 250 | max-frequency = <50000000>; |
| | 251 | disable-wp; |
| | 252 | |
| | 253 | cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; |
| | 254 | vmmc-supply = <&vddao_3v3>; |
| | 255 | vqmmc-supply = <&vddao_3v3>; |
| | 256 | }; |
| | 257 | |
| | 258 | /* eMMC */ |
| | 259 | &sd_emmc_c { |
| | 260 | status = "okay"; |
| | 261 | pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; |
| | 262 | pinctrl-1 = <&emmc_clk_gate_pins>; |
| | 263 | pinctrl-names = "default", "clk-gate"; |
| | 264 | |
| | 265 | bus-width = <8>; |
| | 266 | cap-mmc-highspeed; |
| | 267 | mmc-ddr-1_8v; |
| | 268 | mmc-hs200-1_8v; |
| | 269 | max-frequency = <200000000>; |
| | 270 | non-removable; |
| | 271 | disable-wp; |
| | 272 | |
| | 273 | mmc-pwrseq = <&emmc_pwrseq>; |
| | 274 | vmmc-supply = <&vddao_3v3>; |
| | 275 | vqmmc-supply = <&emmc_1v8>; |
| | 276 | }; |
| | 277 | |
| | 278 | &uart_A { |
| | 279 | status = "okay"; |
| | 280 | pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; |
| | 281 | pinctrl-names = "default"; |
| | 282 | uart-has-rtscts; |
| | 283 | |
| | 284 | bluetooth { |
| | 285 | compatible = "brcm,bcm43438-bt"; |
| | 286 | shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; |
| | 287 | max-speed = <2000000>; |
| | 288 | clocks = <&wifi32k>; |
| | 289 | clock-names = "lpo"; |
| | 290 | vbat-supply = <&vddao_3v3>; |
| | 291 | vddio-supply = <&vddio_ao1v8>; |
| | 292 | }; |
| | 293 | }; |
| | 294 | |
| | 295 | /* Exposed via the on-board USB to Serial FT232RL IC */ |
| | 296 | &uart_AO { |
| | 297 | status = "okay"; |
| | 298 | pinctrl-0 = <&uart_ao_a_pins>; |
| | 299 | pinctrl-names = "default"; |
| | 300 | }; |