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 hdmi-connector { 55 compatible = "hdmi-connector"; 56 type = "a"; 57 58 port { 59 hdmi_connector_in: endpoint { 60 remote-endpoint = <&hdmi_tx_tmds_out>; 61 }; 62 }; 63 }; 64 65 leds { 66 compatible = "gpio-leds"; 67 68 bluetooth { 69 label = "sei610:blue:bt"; 70 gpios = <&gpio GPIOC_7 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 71 default-state = "off"; 72 }; 73 }; 74 75 pwmleds { 76 compatible = "pwm-leds"; 77 78 power { 79 label = "sei610:red:power"; 80 pwms = <&pwm_AO_ab 0 30518 0>; 81 max-brightness = <255>; 82 linux,default-trigger = "default-on"; 83 active-low; 84 }; 85 }; 86 87 memory@0 { 88 device_type = "memory"; 89 reg = <0x0 0x0 0x0 0x40000000>; 90 }; 91 92 ao_5v: regulator-ao_5v { 93 compatible = "regulator-fixed"; 94 regulator-name = "AO_5V"; 95 regulator-min-microvolt = <5000000>; 96 regulator-max-microvolt = <5000000>; 97 vin-supply = <&dc_in>; 98 regulator-always-on; 99 }; 100 101 dc_in: regulator-dc_in { 102 compatible = "regulator-fixed"; 103 regulator-name = "DC_IN"; 104 regulator-min-microvolt = <5000000>; 105 regulator-max-microvolt = <5000000>; 106 regulator-always-on; 107 }; 108 109 emmc_1v8: regulator-emmc_1v8 { 110 compatible = "regulator-fixed"; 111 regulator-name = "EMMC_1V8"; 112 regulator-min-microvolt = <1800000>; 113 regulator-max-microvolt = <1800000>; 114 vin-supply = <&vddao_3v3>; 115 regulator-always-on; 116 }; 117 118 vddao_3v3: regulator-vddao_3v3 { 119 compatible = "regulator-fixed"; 120 regulator-name = "VDDAO_3V3"; 121 regulator-min-microvolt = <3300000>; 122 regulator-max-microvolt = <3300000>; 123 vin-supply = <&dc_in>; 124 regulator-always-on; 125 }; 126 127 /* Used by Tuner, RGB Led & IR Emitter LED array */ 128 vddao_3v3_t: regulator-vddao_3v3_t { 129 compatible = "regulator-fixed"; 130 regulator-name = "VDDAO_3V3_T"; 131 regulator-min-microvolt = <3300000>; 132 regulator-max-microvolt = <3300000>; 133 vin-supply = <&vddao_3v3>; 134 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 135 enable-active-low; 136 regulator-always-on; 137 }; 138 139 vddcpu: regulator-vddcpu { 140 /* 141 * SY8120B1ABC DC/DC Regulator. 142 */ 143 compatible = "pwm-regulator"; 144 145 regulator-name = "VDDCPU"; 146 regulator-min-microvolt = <690000>; 147 regulator-max-microvolt = <1050000>; 148 149 vin-supply = <&dc_in>; 150 151 pwms = <&pwm_AO_cd 1 1500 0>; 152 pwm-dutycycle-range = <100 0>; 153 154 regulator-boot-on; 155 regulator-always-on; 156 }; 157 158 vddio_ao1v8: regulator-vddio_ao1v8 { 159 compatible = "regulator-fixed"; 160 regulator-name = "VDDIO_AO1V8"; 161 regulator-min-microvolt = <1800000>; 162 regulator-max-microvolt = <1800000>; 163 vin-supply = <&vddao_3v3>; 164 regulator-always-on; 165 }; 166 167 sdio_pwrseq: sdio-pwrseq { 168 compatible = "mmc-pwrseq-simple"; 169 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 170 clocks = <&wifi32k>; 171 clock-names = "ext_clock"; 172 }; 173 174 wifi32k: wifi32k { 175 compatible = "pwm-clock"; 176 #clock-cells = <0>; 177 clock-frequency = <32768>; 178 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 179 }; 180}; 181 182&cec_AO { 183 pinctrl-0 = <&cec_ao_a_h_pins>; 184 pinctrl-names = "default"; 185 status = "disabled"; 186 hdmi-phandle = <&hdmi_tx>; 187}; 188 189&cecb_AO { 190 pinctrl-0 = <&cec_ao_b_h_pins>; 191 pinctrl-names = "default"; 192 status = "okay"; 193 hdmi-phandle = <&hdmi_tx>; 194}; 195 196&cpu0 { 197 cpu-supply = <&vddcpu>; 198 operating-points-v2 = <&cpu_opp_table>; 199 clocks = <&clkc CLKID_CPU_CLK>; 200 clock-latency = <50000>; 201}; 202 203&cpu1 { 204 cpu-supply = <&vddcpu>; 205 operating-points-v2 = <&cpu_opp_table>; 206 clocks = <&clkc CLKID_CPU1_CLK>; 207 clock-latency = <50000>; 208}; 209 210&cpu2 { 211 cpu-supply = <&vddcpu>; 212 operating-points-v2 = <&cpu_opp_table>; 213 clocks = <&clkc CLKID_CPU2_CLK>; 214 clock-latency = <50000>; 215}; 216 217&cpu3 { 218 cpu-supply = <&vddcpu>; 219 operating-points-v2 = <&cpu_opp_table>; 220 clocks = <&clkc CLKID_CPU3_CLK>; 221 clock-latency = <50000>; 222}; 223 224ðmac { 225 status = "okay"; 226 phy-handle = <&internal_ephy>; 227 phy-mode = "rmii"; 228}; 229 230&hdmi_tx { 231 status = "okay"; 232 pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 233 pinctrl-names = "default"; 234}; 235 236&hdmi_tx_tmds_port { 237 hdmi_tx_tmds_out: endpoint { 238 remote-endpoint = <&hdmi_connector_in>; 239 }; 240}; 241 242&i2c3 { 243 status = "okay"; 244 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 245 pinctrl-names = "default"; 246}; 247 248&ir { 249 status = "okay"; 250 pinctrl-0 = <&remote_input_ao_pins>; 251 pinctrl-names = "default"; 252}; 253 254&pwm_AO_ab { 255 status = "okay"; 256 pinctrl-0 = <&pwm_ao_a_pins>; 257 pinctrl-names = "default"; 258 clocks = <&xtal>; 259 clock-names = "clkin0"; 260}; 261 262&pwm_AO_cd { 263 pinctrl-0 = <&pwm_ao_d_e_pins>; 264 pinctrl-names = "default"; 265 clocks = <&xtal>; 266 clock-names = "clkin1"; 267 status = "okay"; 268}; 269 270&pwm_ef { 271 status = "okay"; 272 pinctrl-0 = <&pwm_e_pins>; 273 pinctrl-names = "default"; 274 clocks = <&xtal>; 275 clock-names = "clkin0"; 276}; 277 278&saradc { 279 status = "okay"; 280 vref-supply = <&vddio_ao1v8>; 281}; 282 283/* SDIO */ 284&sd_emmc_a { 285 status = "okay"; 286 pinctrl-0 = <&sdio_pins>; 287 pinctrl-1 = <&sdio_clk_gate_pins>; 288 pinctrl-names = "default", "clk-gate"; 289 #address-cells = <1>; 290 #size-cells = <0>; 291 292 bus-width = <4>; 293 cap-sd-highspeed; 294 sd-uhs-sdr50; 295 max-frequency = <100000000>; 296 297 non-removable; 298 disable-wp; 299 300 mmc-pwrseq = <&sdio_pwrseq>; 301 302 vmmc-supply = <&vddao_3v3>; 303 vqmmc-supply = <&vddio_ao1v8>; 304 305 brcmf: wifi@1 { 306 reg = <1>; 307 compatible = "brcm,bcm4329-fmac"; 308 }; 309}; 310 311/* SD card */ 312&sd_emmc_b { 313 status = "okay"; 314 pinctrl-0 = <&sdcard_c_pins>; 315 pinctrl-1 = <&sdcard_clk_gate_c_pins>; 316 pinctrl-names = "default", "clk-gate"; 317 318 bus-width = <4>; 319 cap-sd-highspeed; 320 max-frequency = <50000000>; 321 disable-wp; 322 323 cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 324 vmmc-supply = <&vddao_3v3>; 325 vqmmc-supply = <&vddao_3v3>; 326}; 327 328/* eMMC */ 329&sd_emmc_c { 330 status = "okay"; 331 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 332 pinctrl-1 = <&emmc_clk_gate_pins>; 333 pinctrl-names = "default", "clk-gate"; 334 335 bus-width = <8>; 336 cap-mmc-highspeed; 337 mmc-ddr-1_8v; 338 mmc-hs200-1_8v; 339 max-frequency = <200000000>; 340 non-removable; 341 disable-wp; 342 343 mmc-pwrseq = <&emmc_pwrseq>; 344 vmmc-supply = <&vddao_3v3>; 345 vqmmc-supply = <&emmc_1v8>; 346}; 347 348&uart_A { 349 status = "okay"; 350 pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 351 pinctrl-names = "default"; 352 uart-has-rtscts; 353 354 bluetooth { 355 compatible = "brcm,bcm43438-bt"; 356 interrupt-parent = <&gpio_intc>; 357 interrupts = <95 IRQ_TYPE_LEVEL_HIGH>; 358 interrupt-names = "host-wakeup"; 359 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 360 max-speed = <2000000>; 361 clocks = <&wifi32k>; 362 clock-names = "lpo"; 363 vbat-supply = <&vddao_3v3>; 364 vddio-supply = <&vddio_ao1v8>; 365 }; 366}; 367 368/* Exposed via the on-board USB to Serial FT232RL IC */ 369&uart_AO { 370 status = "okay"; 371 pinctrl-0 = <&uart_ao_a_pins>; 372 pinctrl-names = "default"; 373}; 374 375&usb { 376 status = "okay"; 377 dr_mode = "otg"; 378}; 379