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