1*9ded9b0fSMartin Blumenstingl/* 2*9ded9b0fSMartin Blumenstingl * Copyright (c) 2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>. 3*9ded9b0fSMartin Blumenstingl * Based on meson-gx-p23x-q20x.dtsi: 4*9ded9b0fSMartin Blumenstingl * - Copyright (c) 2016 Endless Computers, Inc. 5*9ded9b0fSMartin Blumenstingl * Author: Carlo Caione <carlo@endlessm.com> 6*9ded9b0fSMartin Blumenstingl * - Copyright (c) 2016 BayLibre, SAS. 7*9ded9b0fSMartin Blumenstingl * Author: Neil Armstrong <narmstrong@baylibre.com> 8*9ded9b0fSMartin Blumenstingl * 9*9ded9b0fSMartin Blumenstingl * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 10*9ded9b0fSMartin Blumenstingl */ 11*9ded9b0fSMartin Blumenstingl 12*9ded9b0fSMartin Blumenstingl/* Common DTSI for devices which are based on the P212 reference board. */ 13*9ded9b0fSMartin Blumenstingl 14*9ded9b0fSMartin Blumenstingl#include "meson-gxl-s905x.dtsi" 15*9ded9b0fSMartin Blumenstingl 16*9ded9b0fSMartin Blumenstingl/ { 17*9ded9b0fSMartin Blumenstingl aliases { 18*9ded9b0fSMartin Blumenstingl serial0 = &uart_AO; 19*9ded9b0fSMartin Blumenstingl serial1 = &uart_A; 20*9ded9b0fSMartin Blumenstingl }; 21*9ded9b0fSMartin Blumenstingl 22*9ded9b0fSMartin Blumenstingl chosen { 23*9ded9b0fSMartin Blumenstingl stdout-path = "serial0:115200n8"; 24*9ded9b0fSMartin Blumenstingl }; 25*9ded9b0fSMartin Blumenstingl 26*9ded9b0fSMartin Blumenstingl memory@0 { 27*9ded9b0fSMartin Blumenstingl device_type = "memory"; 28*9ded9b0fSMartin Blumenstingl reg = <0x0 0x0 0x0 0x80000000>; 29*9ded9b0fSMartin Blumenstingl }; 30*9ded9b0fSMartin Blumenstingl 31*9ded9b0fSMartin Blumenstingl vddio_boot: regulator-vddio_boot { 32*9ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 33*9ded9b0fSMartin Blumenstingl regulator-name = "VDDIO_BOOT"; 34*9ded9b0fSMartin Blumenstingl regulator-min-microvolt = <1800000>; 35*9ded9b0fSMartin Blumenstingl regulator-max-microvolt = <1800000>; 36*9ded9b0fSMartin Blumenstingl }; 37*9ded9b0fSMartin Blumenstingl 38*9ded9b0fSMartin Blumenstingl vddao_3v3: regulator-vddao_3v3 { 39*9ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 40*9ded9b0fSMartin Blumenstingl regulator-name = "VDDAO_3V3"; 41*9ded9b0fSMartin Blumenstingl regulator-min-microvolt = <3300000>; 42*9ded9b0fSMartin Blumenstingl regulator-max-microvolt = <3300000>; 43*9ded9b0fSMartin Blumenstingl }; 44*9ded9b0fSMartin Blumenstingl 45*9ded9b0fSMartin Blumenstingl vddio_ao18: regulator-vddio_ao18 { 46*9ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 47*9ded9b0fSMartin Blumenstingl regulator-name = "VDDIO_AO18"; 48*9ded9b0fSMartin Blumenstingl regulator-min-microvolt = <1800000>; 49*9ded9b0fSMartin Blumenstingl regulator-max-microvolt = <1800000>; 50*9ded9b0fSMartin Blumenstingl }; 51*9ded9b0fSMartin Blumenstingl 52*9ded9b0fSMartin Blumenstingl vcc_3v3: regulator-vcc_3v3 { 53*9ded9b0fSMartin Blumenstingl compatible = "regulator-fixed"; 54*9ded9b0fSMartin Blumenstingl regulator-name = "VCC_3V3"; 55*9ded9b0fSMartin Blumenstingl regulator-min-microvolt = <3300000>; 56*9ded9b0fSMartin Blumenstingl regulator-max-microvolt = <3300000>; 57*9ded9b0fSMartin Blumenstingl }; 58*9ded9b0fSMartin Blumenstingl 59*9ded9b0fSMartin Blumenstingl emmc_pwrseq: emmc-pwrseq { 60*9ded9b0fSMartin Blumenstingl compatible = "mmc-pwrseq-emmc"; 61*9ded9b0fSMartin Blumenstingl reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 62*9ded9b0fSMartin Blumenstingl }; 63*9ded9b0fSMartin Blumenstingl 64*9ded9b0fSMartin Blumenstingl wifi32k: wifi32k { 65*9ded9b0fSMartin Blumenstingl compatible = "pwm-clock"; 66*9ded9b0fSMartin Blumenstingl #clock-cells = <0>; 67*9ded9b0fSMartin Blumenstingl clock-frequency = <32768>; 68*9ded9b0fSMartin Blumenstingl pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 69*9ded9b0fSMartin Blumenstingl }; 70*9ded9b0fSMartin Blumenstingl 71*9ded9b0fSMartin Blumenstingl sdio_pwrseq: sdio-pwrseq { 72*9ded9b0fSMartin Blumenstingl compatible = "mmc-pwrseq-simple"; 73*9ded9b0fSMartin Blumenstingl reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 74*9ded9b0fSMartin Blumenstingl clocks = <&wifi32k>; 75*9ded9b0fSMartin Blumenstingl clock-names = "ext_clock"; 76*9ded9b0fSMartin Blumenstingl }; 77*9ded9b0fSMartin Blumenstingl}; 78*9ded9b0fSMartin Blumenstingl 79*9ded9b0fSMartin Blumenstinglðmac { 80*9ded9b0fSMartin Blumenstingl status = "okay"; 81*9ded9b0fSMartin Blumenstingl}; 82*9ded9b0fSMartin Blumenstingl 83*9ded9b0fSMartin Blumenstingl&ir { 84*9ded9b0fSMartin Blumenstingl status = "okay"; 85*9ded9b0fSMartin Blumenstingl pinctrl-0 = <&remote_input_ao_pins>; 86*9ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 87*9ded9b0fSMartin Blumenstingl}; 88*9ded9b0fSMartin Blumenstingl 89*9ded9b0fSMartin Blumenstingl&saradc { 90*9ded9b0fSMartin Blumenstingl status = "okay"; 91*9ded9b0fSMartin Blumenstingl vref-supply = <&vddio_ao18>; 92*9ded9b0fSMartin Blumenstingl}; 93*9ded9b0fSMartin Blumenstingl 94*9ded9b0fSMartin Blumenstingl/* Wireless SDIO Module */ 95*9ded9b0fSMartin Blumenstingl&sd_emmc_a { 96*9ded9b0fSMartin Blumenstingl status = "okay"; 97*9ded9b0fSMartin Blumenstingl pinctrl-0 = <&sdio_pins>; 98*9ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 99*9ded9b0fSMartin Blumenstingl #address-cells = <1>; 100*9ded9b0fSMartin Blumenstingl #size-cells = <0>; 101*9ded9b0fSMartin Blumenstingl 102*9ded9b0fSMartin Blumenstingl bus-width = <4>; 103*9ded9b0fSMartin Blumenstingl cap-sd-highspeed; 104*9ded9b0fSMartin Blumenstingl max-frequency = <100000000>; 105*9ded9b0fSMartin Blumenstingl 106*9ded9b0fSMartin Blumenstingl non-removable; 107*9ded9b0fSMartin Blumenstingl disable-wp; 108*9ded9b0fSMartin Blumenstingl 109*9ded9b0fSMartin Blumenstingl mmc-pwrseq = <&sdio_pwrseq>; 110*9ded9b0fSMartin Blumenstingl 111*9ded9b0fSMartin Blumenstingl vmmc-supply = <&vddao_3v3>; 112*9ded9b0fSMartin Blumenstingl vqmmc-supply = <&vddio_boot>; 113*9ded9b0fSMartin Blumenstingl}; 114*9ded9b0fSMartin Blumenstingl 115*9ded9b0fSMartin Blumenstingl/* SD card */ 116*9ded9b0fSMartin Blumenstingl&sd_emmc_b { 117*9ded9b0fSMartin Blumenstingl status = "okay"; 118*9ded9b0fSMartin Blumenstingl pinctrl-0 = <&sdcard_pins>; 119*9ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 120*9ded9b0fSMartin Blumenstingl 121*9ded9b0fSMartin Blumenstingl bus-width = <4>; 122*9ded9b0fSMartin Blumenstingl cap-sd-highspeed; 123*9ded9b0fSMartin Blumenstingl max-frequency = <100000000>; 124*9ded9b0fSMartin Blumenstingl disable-wp; 125*9ded9b0fSMartin Blumenstingl 126*9ded9b0fSMartin Blumenstingl cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; 127*9ded9b0fSMartin Blumenstingl cd-inverted; 128*9ded9b0fSMartin Blumenstingl 129*9ded9b0fSMartin Blumenstingl vmmc-supply = <&vddao_3v3>; 130*9ded9b0fSMartin Blumenstingl vqmmc-supply = <&vddio_boot>; 131*9ded9b0fSMartin Blumenstingl}; 132*9ded9b0fSMartin Blumenstingl 133*9ded9b0fSMartin Blumenstingl/* eMMC */ 134*9ded9b0fSMartin Blumenstingl&sd_emmc_c { 135*9ded9b0fSMartin Blumenstingl status = "okay"; 136*9ded9b0fSMartin Blumenstingl pinctrl-0 = <&emmc_pins>; 137*9ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 138*9ded9b0fSMartin Blumenstingl 139*9ded9b0fSMartin Blumenstingl bus-width = <8>; 140*9ded9b0fSMartin Blumenstingl cap-sd-highspeed; 141*9ded9b0fSMartin Blumenstingl cap-mmc-highspeed; 142*9ded9b0fSMartin Blumenstingl max-frequency = <200000000>; 143*9ded9b0fSMartin Blumenstingl non-removable; 144*9ded9b0fSMartin Blumenstingl disable-wp; 145*9ded9b0fSMartin Blumenstingl mmc-ddr-1_8v; 146*9ded9b0fSMartin Blumenstingl mmc-hs200-1_8v; 147*9ded9b0fSMartin Blumenstingl 148*9ded9b0fSMartin Blumenstingl mmc-pwrseq = <&emmc_pwrseq>; 149*9ded9b0fSMartin Blumenstingl vmmc-supply = <&vcc_3v3>; 150*9ded9b0fSMartin Blumenstingl vqmmc-supply = <&vddio_boot>; 151*9ded9b0fSMartin Blumenstingl}; 152*9ded9b0fSMartin Blumenstingl 153*9ded9b0fSMartin Blumenstingl&pwm_ef { 154*9ded9b0fSMartin Blumenstingl status = "okay"; 155*9ded9b0fSMartin Blumenstingl pinctrl-0 = <&pwm_e_pins>; 156*9ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 157*9ded9b0fSMartin Blumenstingl clocks = <&clkc CLKID_FCLK_DIV4>; 158*9ded9b0fSMartin Blumenstingl clock-names = "clkin0"; 159*9ded9b0fSMartin Blumenstingl}; 160*9ded9b0fSMartin Blumenstingl 161*9ded9b0fSMartin Blumenstingl/* This is connected to the Bluetooth module: */ 162*9ded9b0fSMartin Blumenstingl&uart_A { 163*9ded9b0fSMartin Blumenstingl status = "okay"; 164*9ded9b0fSMartin Blumenstingl pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 165*9ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 166*9ded9b0fSMartin Blumenstingl uart-has-rtscts; 167*9ded9b0fSMartin Blumenstingl}; 168*9ded9b0fSMartin Blumenstingl 169*9ded9b0fSMartin Blumenstingl&uart_AO { 170*9ded9b0fSMartin Blumenstingl status = "okay"; 171*9ded9b0fSMartin Blumenstingl pinctrl-0 = <&uart_ao_a_pins>; 172*9ded9b0fSMartin Blumenstingl pinctrl-names = "default"; 173*9ded9b0fSMartin Blumenstingl}; 174