1*abfaae24SVyacheslav Bocharov// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*abfaae24SVyacheslav Bocharov/* 3*abfaae24SVyacheslav Bocharov * Copyright (c) 2021 Vyacheslav Bocharov <adeep@lexina.in> 4*abfaae24SVyacheslav Bocharov * Copyright (c) 2020 JetHome 5*abfaae24SVyacheslav Bocharov * Author: Aleksandr Kazantsev <ak@tvip.ru> 6*abfaae24SVyacheslav Bocharov * Author: Alexey Shevelkin <ash@tvip.ru> 7*abfaae24SVyacheslav Bocharov * Author: Vyacheslav Bocharov <adeep@lexina.in> 8*abfaae24SVyacheslav Bocharov */ 9*abfaae24SVyacheslav Bocharov 10*abfaae24SVyacheslav Bocharov/dts-v1/; 11*abfaae24SVyacheslav Bocharov 12*abfaae24SVyacheslav Bocharov#include "meson-gxl.dtsi" 13*abfaae24SVyacheslav Bocharov 14*abfaae24SVyacheslav Bocharov/ { 15*abfaae24SVyacheslav Bocharov compatible = "jethome,jethub-j80", "amlogic,s905w", "amlogic,meson-gxl"; 16*abfaae24SVyacheslav Bocharov model = "JetHome JetHub J80"; 17*abfaae24SVyacheslav Bocharov memory@0 { 18*abfaae24SVyacheslav Bocharov device_type = "memory"; 19*abfaae24SVyacheslav Bocharov reg = <0x0 0x0 0x0 0x40000000>; 20*abfaae24SVyacheslav Bocharov }; 21*abfaae24SVyacheslav Bocharov 22*abfaae24SVyacheslav Bocharov reserved-memory { 23*abfaae24SVyacheslav Bocharov linux,cma { 24*abfaae24SVyacheslav Bocharov size = <0x0 0x1000000>; 25*abfaae24SVyacheslav Bocharov }; 26*abfaae24SVyacheslav Bocharov }; 27*abfaae24SVyacheslav Bocharov 28*abfaae24SVyacheslav Bocharov aliases { 29*abfaae24SVyacheslav Bocharov serial0 = &uart_AO; /* Console */ 30*abfaae24SVyacheslav Bocharov serial1 = &uart_A; /* Bluetooth */ 31*abfaae24SVyacheslav Bocharov serial2 = &uart_AO_B; /* Wireless module 1 */ 32*abfaae24SVyacheslav Bocharov serial3 = &uart_C; /* Wireless module 2 */ 33*abfaae24SVyacheslav Bocharov ethernet0 = ðmac; 34*abfaae24SVyacheslav Bocharov }; 35*abfaae24SVyacheslav Bocharov 36*abfaae24SVyacheslav Bocharov chosen { 37*abfaae24SVyacheslav Bocharov stdout-path = "serial0:115200n8"; 38*abfaae24SVyacheslav Bocharov }; 39*abfaae24SVyacheslav Bocharov 40*abfaae24SVyacheslav Bocharov vddio_ao18: regulator-vddio_ao18 { 41*abfaae24SVyacheslav Bocharov compatible = "regulator-fixed"; 42*abfaae24SVyacheslav Bocharov regulator-name = "VDDIO_AO18"; 43*abfaae24SVyacheslav Bocharov regulator-min-microvolt = <1800000>; 44*abfaae24SVyacheslav Bocharov regulator-max-microvolt = <1800000>; 45*abfaae24SVyacheslav Bocharov }; 46*abfaae24SVyacheslav Bocharov 47*abfaae24SVyacheslav Bocharov vddio_boot: regulator-vddio_boot { 48*abfaae24SVyacheslav Bocharov compatible = "regulator-fixed"; 49*abfaae24SVyacheslav Bocharov regulator-name = "VDDIO_BOOT"; 50*abfaae24SVyacheslav Bocharov regulator-min-microvolt = <1800000>; 51*abfaae24SVyacheslav Bocharov regulator-max-microvolt = <1800000>; 52*abfaae24SVyacheslav Bocharov }; 53*abfaae24SVyacheslav Bocharov 54*abfaae24SVyacheslav Bocharov vddao_3v3: regulator-vddao_3v3 { 55*abfaae24SVyacheslav Bocharov compatible = "regulator-fixed"; 56*abfaae24SVyacheslav Bocharov regulator-name = "VDDAO_3V3"; 57*abfaae24SVyacheslav Bocharov regulator-min-microvolt = <3300000>; 58*abfaae24SVyacheslav Bocharov regulator-max-microvolt = <3300000>; 59*abfaae24SVyacheslav Bocharov }; 60*abfaae24SVyacheslav Bocharov 61*abfaae24SVyacheslav Bocharov vcc_3v3: regulator-vcc_3v3 { 62*abfaae24SVyacheslav Bocharov compatible = "regulator-fixed"; 63*abfaae24SVyacheslav Bocharov regulator-name = "VCC_3V3"; 64*abfaae24SVyacheslav Bocharov regulator-min-microvolt = <3300000>; 65*abfaae24SVyacheslav Bocharov regulator-max-microvolt = <3300000>; 66*abfaae24SVyacheslav Bocharov }; 67*abfaae24SVyacheslav Bocharov 68*abfaae24SVyacheslav Bocharov emmc_pwrseq: emmc-pwrseq { 69*abfaae24SVyacheslav Bocharov compatible = "mmc-pwrseq-emmc"; 70*abfaae24SVyacheslav Bocharov reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 71*abfaae24SVyacheslav Bocharov }; 72*abfaae24SVyacheslav Bocharov 73*abfaae24SVyacheslav Bocharov wifi32k: wifi32k { 74*abfaae24SVyacheslav Bocharov compatible = "pwm-clock"; 75*abfaae24SVyacheslav Bocharov #clock-cells = <0>; 76*abfaae24SVyacheslav Bocharov clock-frequency = <32768>; 77*abfaae24SVyacheslav Bocharov pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 78*abfaae24SVyacheslav Bocharov }; 79*abfaae24SVyacheslav Bocharov 80*abfaae24SVyacheslav Bocharov sdio_pwrseq: sdio-pwrseq { 81*abfaae24SVyacheslav Bocharov compatible = "mmc-pwrseq-simple"; 82*abfaae24SVyacheslav Bocharov reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 83*abfaae24SVyacheslav Bocharov clocks = <&wifi32k>; 84*abfaae24SVyacheslav Bocharov clock-names = "ext_clock"; 85*abfaae24SVyacheslav Bocharov }; 86*abfaae24SVyacheslav Bocharov}; 87*abfaae24SVyacheslav Bocharov 88*abfaae24SVyacheslav Bocharov&efuse { 89*abfaae24SVyacheslav Bocharov bt_mac: bt_mac@6 { 90*abfaae24SVyacheslav Bocharov reg = <0x6 0x6>; 91*abfaae24SVyacheslav Bocharov }; 92*abfaae24SVyacheslav Bocharov 93*abfaae24SVyacheslav Bocharov wifi_mac: wifi_mac@C { 94*abfaae24SVyacheslav Bocharov reg = <0xc 0x6>; 95*abfaae24SVyacheslav Bocharov }; 96*abfaae24SVyacheslav Bocharov}; 97*abfaae24SVyacheslav Bocharov 98*abfaae24SVyacheslav Bocharov&sn { 99*abfaae24SVyacheslav Bocharov reg = <0x32 0x20>; 100*abfaae24SVyacheslav Bocharov}; 101*abfaae24SVyacheslav Bocharov 102*abfaae24SVyacheslav Bocharovð_mac { 103*abfaae24SVyacheslav Bocharov reg = <0x0 0x6>; 104*abfaae24SVyacheslav Bocharov}; 105*abfaae24SVyacheslav Bocharov 106*abfaae24SVyacheslav Bocharov&bid { 107*abfaae24SVyacheslav Bocharov reg = <0x12 0x20>; 108*abfaae24SVyacheslav Bocharov}; 109*abfaae24SVyacheslav Bocharov 110*abfaae24SVyacheslav Bocharov&usb { 111*abfaae24SVyacheslav Bocharov status = "okay"; 112*abfaae24SVyacheslav Bocharov dr_mode = "host"; 113*abfaae24SVyacheslav Bocharov}; 114*abfaae24SVyacheslav Bocharov 115*abfaae24SVyacheslav Bocharov&pwm_ef { 116*abfaae24SVyacheslav Bocharov status = "okay"; 117*abfaae24SVyacheslav Bocharov pinctrl-0 = <&pwm_e_pins>; 118*abfaae24SVyacheslav Bocharov pinctrl-names = "default"; 119*abfaae24SVyacheslav Bocharov clocks = <&clkc CLKID_FCLK_DIV4>; 120*abfaae24SVyacheslav Bocharov clock-names = "clkin0"; 121*abfaae24SVyacheslav Bocharov}; 122*abfaae24SVyacheslav Bocharov 123*abfaae24SVyacheslav Bocharov&saradc { 124*abfaae24SVyacheslav Bocharov status = "okay"; 125*abfaae24SVyacheslav Bocharov vref-supply = <&vddio_ao18>; 126*abfaae24SVyacheslav Bocharov}; 127*abfaae24SVyacheslav Bocharov 128*abfaae24SVyacheslav Bocharov/* Wireless SDIO Module */ 129*abfaae24SVyacheslav Bocharov&sd_emmc_a { 130*abfaae24SVyacheslav Bocharov status = "okay"; 131*abfaae24SVyacheslav Bocharov pinctrl-0 = <&sdio_pins>; 132*abfaae24SVyacheslav Bocharov pinctrl-1 = <&sdio_clk_gate_pins>; 133*abfaae24SVyacheslav Bocharov pinctrl-names = "default", "clk-gate"; 134*abfaae24SVyacheslav Bocharov #address-cells = <1>; 135*abfaae24SVyacheslav Bocharov #size-cells = <0>; 136*abfaae24SVyacheslav Bocharov 137*abfaae24SVyacheslav Bocharov bus-width = <4>; 138*abfaae24SVyacheslav Bocharov cap-sd-highspeed; 139*abfaae24SVyacheslav Bocharov max-frequency = <50000000>; 140*abfaae24SVyacheslav Bocharov 141*abfaae24SVyacheslav Bocharov non-removable; 142*abfaae24SVyacheslav Bocharov disable-wp; 143*abfaae24SVyacheslav Bocharov 144*abfaae24SVyacheslav Bocharov /* WiFi firmware requires power to be kept while in suspend */ 145*abfaae24SVyacheslav Bocharov keep-power-in-suspend; 146*abfaae24SVyacheslav Bocharov 147*abfaae24SVyacheslav Bocharov mmc-pwrseq = <&sdio_pwrseq>; 148*abfaae24SVyacheslav Bocharov 149*abfaae24SVyacheslav Bocharov vmmc-supply = <&vddao_3v3>; 150*abfaae24SVyacheslav Bocharov vqmmc-supply = <&vddio_boot>; 151*abfaae24SVyacheslav Bocharov}; 152*abfaae24SVyacheslav Bocharov 153*abfaae24SVyacheslav Bocharov/* SD card */ 154*abfaae24SVyacheslav Bocharov&sd_emmc_b { 155*abfaae24SVyacheslav Bocharov status = "okay"; 156*abfaae24SVyacheslav Bocharov pinctrl-0 = <&sdcard_pins>; 157*abfaae24SVyacheslav Bocharov pinctrl-1 = <&sdcard_clk_gate_pins>; 158*abfaae24SVyacheslav Bocharov pinctrl-names = "default", "clk-gate"; 159*abfaae24SVyacheslav Bocharov 160*abfaae24SVyacheslav Bocharov bus-width = <4>; 161*abfaae24SVyacheslav Bocharov cap-sd-highspeed; 162*abfaae24SVyacheslav Bocharov max-frequency = <50000000>; 163*abfaae24SVyacheslav Bocharov disable-wp; 164*abfaae24SVyacheslav Bocharov 165*abfaae24SVyacheslav Bocharov cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 166*abfaae24SVyacheslav Bocharov 167*abfaae24SVyacheslav Bocharov vmmc-supply = <&vddao_3v3>; 168*abfaae24SVyacheslav Bocharov vqmmc-supply = <&vddio_boot>; 169*abfaae24SVyacheslav Bocharov}; 170*abfaae24SVyacheslav Bocharov 171*abfaae24SVyacheslav Bocharov/* eMMC */ 172*abfaae24SVyacheslav Bocharov&sd_emmc_c { 173*abfaae24SVyacheslav Bocharov status = "okay"; 174*abfaae24SVyacheslav Bocharov pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 175*abfaae24SVyacheslav Bocharov pinctrl-1 = <&emmc_clk_gate_pins>; 176*abfaae24SVyacheslav Bocharov pinctrl-names = "default", "clk-gate"; 177*abfaae24SVyacheslav Bocharov 178*abfaae24SVyacheslav Bocharov bus-width = <8>; 179*abfaae24SVyacheslav Bocharov cap-mmc-highspeed; 180*abfaae24SVyacheslav Bocharov max-frequency = <200000000>; 181*abfaae24SVyacheslav Bocharov non-removable; 182*abfaae24SVyacheslav Bocharov disable-wp; 183*abfaae24SVyacheslav Bocharov mmc-ddr-1_8v; 184*abfaae24SVyacheslav Bocharov mmc-hs200-1_8v; 185*abfaae24SVyacheslav Bocharov 186*abfaae24SVyacheslav Bocharov mmc-pwrseq = <&emmc_pwrseq>; 187*abfaae24SVyacheslav Bocharov vmmc-supply = <&vcc_3v3>; 188*abfaae24SVyacheslav Bocharov vqmmc-supply = <&vddio_boot>; 189*abfaae24SVyacheslav Bocharov}; 190*abfaae24SVyacheslav Bocharov 191*abfaae24SVyacheslav Bocharov/* Console UART */ 192*abfaae24SVyacheslav Bocharov&uart_AO { 193*abfaae24SVyacheslav Bocharov status = "okay"; 194*abfaae24SVyacheslav Bocharov pinctrl-0 = <&uart_ao_a_pins>; 195*abfaae24SVyacheslav Bocharov pinctrl-names = "default"; 196*abfaae24SVyacheslav Bocharov}; 197*abfaae24SVyacheslav Bocharov 198*abfaae24SVyacheslav Bocharov/* S905W only has access to its internal PHY */ 199*abfaae24SVyacheslav Bocharovðmac { 200*abfaae24SVyacheslav Bocharov status = "okay"; 201*abfaae24SVyacheslav Bocharov phy-mode = "rmii"; 202*abfaae24SVyacheslav Bocharov phy-handle = <&internal_phy>; 203*abfaae24SVyacheslav Bocharov}; 204*abfaae24SVyacheslav Bocharov 205*abfaae24SVyacheslav Bocharov&internal_phy { 206*abfaae24SVyacheslav Bocharov status = "okay"; 207*abfaae24SVyacheslav Bocharov pinctrl-0 = <ð_link_led_pins>, <ð_act_led_pins>; 208*abfaae24SVyacheslav Bocharov pinctrl-names = "default"; 209*abfaae24SVyacheslav Bocharov}; 210*abfaae24SVyacheslav Bocharov 211*abfaae24SVyacheslav Bocharov&uart_A { 212*abfaae24SVyacheslav Bocharov status = "okay"; 213*abfaae24SVyacheslav Bocharov pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 214*abfaae24SVyacheslav Bocharov pinctrl-names = "default"; 215*abfaae24SVyacheslav Bocharov uart-has-rtscts; 216*abfaae24SVyacheslav Bocharov}; 217*abfaae24SVyacheslav Bocharov 218*abfaae24SVyacheslav Bocharov&uart_C { 219*abfaae24SVyacheslav Bocharov status = "okay"; 220*abfaae24SVyacheslav Bocharov pinctrl-0 = <&uart_c_pins>; 221*abfaae24SVyacheslav Bocharov pinctrl-names = "default"; 222*abfaae24SVyacheslav Bocharov}; 223*abfaae24SVyacheslav Bocharov 224*abfaae24SVyacheslav Bocharov&uart_AO_B { 225*abfaae24SVyacheslav Bocharov status = "okay"; 226*abfaae24SVyacheslav Bocharov pinctrl-0 = <&uart_ao_b_pins>, <&uart_ao_b_cts_rts_pins>; 227*abfaae24SVyacheslav Bocharov pinctrl-names = "default"; 228*abfaae24SVyacheslav Bocharov uart-has-rtscts; 229*abfaae24SVyacheslav Bocharov}; 230*abfaae24SVyacheslav Bocharov 231*abfaae24SVyacheslav Bocharov&i2c_B { 232*abfaae24SVyacheslav Bocharov status = "okay"; 233*abfaae24SVyacheslav Bocharov pinctrl-names = "default"; 234*abfaae24SVyacheslav Bocharov pinctrl-0 = <&i2c_b_pins>; 235*abfaae24SVyacheslav Bocharov 236*abfaae24SVyacheslav Bocharov pcf8563: pcf8563@51 { 237*abfaae24SVyacheslav Bocharov compatible = "nxp,pcf8563"; 238*abfaae24SVyacheslav Bocharov reg = <0x51>; 239*abfaae24SVyacheslav Bocharov status = "okay"; 240*abfaae24SVyacheslav Bocharov }; 241*abfaae24SVyacheslav Bocharov}; 242