19ded9b0fSMartin Blumenstingl/*
29ded9b0fSMartin Blumenstingl * Copyright (c) 2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
39ded9b0fSMartin Blumenstingl * Based on meson-gx-p23x-q20x.dtsi:
49ded9b0fSMartin Blumenstingl * - Copyright (c) 2016 Endless Computers, Inc.
59ded9b0fSMartin Blumenstingl *   Author: Carlo Caione <carlo@endlessm.com>
69ded9b0fSMartin Blumenstingl * - Copyright (c) 2016 BayLibre, SAS.
79ded9b0fSMartin Blumenstingl *   Author: Neil Armstrong <narmstrong@baylibre.com>
89ded9b0fSMartin Blumenstingl *
99ded9b0fSMartin Blumenstingl * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
109ded9b0fSMartin Blumenstingl */
119ded9b0fSMartin Blumenstingl
129ded9b0fSMartin Blumenstingl/* Common DTSI for devices which are based on the P212 reference board. */
139ded9b0fSMartin Blumenstingl
149ded9b0fSMartin Blumenstingl#include "meson-gxl-s905x.dtsi"
159ded9b0fSMartin Blumenstingl
169ded9b0fSMartin Blumenstingl/ {
179ded9b0fSMartin Blumenstingl	aliases {
189ded9b0fSMartin Blumenstingl		serial0 = &uart_AO;
199ded9b0fSMartin Blumenstingl		serial1 = &uart_A;
209ded9b0fSMartin Blumenstingl	};
219ded9b0fSMartin Blumenstingl
229ded9b0fSMartin Blumenstingl	chosen {
239ded9b0fSMartin Blumenstingl		stdout-path = "serial0:115200n8";
249ded9b0fSMartin Blumenstingl	};
259ded9b0fSMartin Blumenstingl
269ded9b0fSMartin Blumenstingl	memory@0 {
279ded9b0fSMartin Blumenstingl		device_type = "memory";
289ded9b0fSMartin Blumenstingl		reg = <0x0 0x0 0x0 0x80000000>;
299ded9b0fSMartin Blumenstingl	};
309ded9b0fSMartin Blumenstingl
319ded9b0fSMartin Blumenstingl	vddio_boot: regulator-vddio_boot {
329ded9b0fSMartin Blumenstingl		compatible = "regulator-fixed";
339ded9b0fSMartin Blumenstingl		regulator-name = "VDDIO_BOOT";
349ded9b0fSMartin Blumenstingl		regulator-min-microvolt = <1800000>;
359ded9b0fSMartin Blumenstingl		regulator-max-microvolt = <1800000>;
369ded9b0fSMartin Blumenstingl	};
379ded9b0fSMartin Blumenstingl
389ded9b0fSMartin Blumenstingl	vddao_3v3: regulator-vddao_3v3 {
399ded9b0fSMartin Blumenstingl		compatible = "regulator-fixed";
409ded9b0fSMartin Blumenstingl		regulator-name = "VDDAO_3V3";
419ded9b0fSMartin Blumenstingl		regulator-min-microvolt = <3300000>;
429ded9b0fSMartin Blumenstingl		regulator-max-microvolt = <3300000>;
439ded9b0fSMartin Blumenstingl	};
449ded9b0fSMartin Blumenstingl
459ded9b0fSMartin Blumenstingl	vddio_ao18: regulator-vddio_ao18 {
469ded9b0fSMartin Blumenstingl		compatible = "regulator-fixed";
479ded9b0fSMartin Blumenstingl		regulator-name = "VDDIO_AO18";
489ded9b0fSMartin Blumenstingl		regulator-min-microvolt = <1800000>;
499ded9b0fSMartin Blumenstingl		regulator-max-microvolt = <1800000>;
509ded9b0fSMartin Blumenstingl	};
519ded9b0fSMartin Blumenstingl
529ded9b0fSMartin Blumenstingl	vcc_3v3: regulator-vcc_3v3 {
539ded9b0fSMartin Blumenstingl		compatible = "regulator-fixed";
549ded9b0fSMartin Blumenstingl		regulator-name = "VCC_3V3";
559ded9b0fSMartin Blumenstingl		regulator-min-microvolt = <3300000>;
569ded9b0fSMartin Blumenstingl		regulator-max-microvolt = <3300000>;
579ded9b0fSMartin Blumenstingl	};
589ded9b0fSMartin Blumenstingl
599ded9b0fSMartin Blumenstingl	emmc_pwrseq: emmc-pwrseq {
609ded9b0fSMartin Blumenstingl		compatible = "mmc-pwrseq-emmc";
619ded9b0fSMartin Blumenstingl		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
629ded9b0fSMartin Blumenstingl	};
639ded9b0fSMartin Blumenstingl
649ded9b0fSMartin Blumenstingl	wifi32k: wifi32k {
659ded9b0fSMartin Blumenstingl		compatible = "pwm-clock";
669ded9b0fSMartin Blumenstingl		#clock-cells = <0>;
679ded9b0fSMartin Blumenstingl		clock-frequency = <32768>;
689ded9b0fSMartin Blumenstingl		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
699ded9b0fSMartin Blumenstingl	};
709ded9b0fSMartin Blumenstingl
719ded9b0fSMartin Blumenstingl	sdio_pwrseq: sdio-pwrseq {
729ded9b0fSMartin Blumenstingl		compatible = "mmc-pwrseq-simple";
739ded9b0fSMartin Blumenstingl		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
749ded9b0fSMartin Blumenstingl		clocks = <&wifi32k>;
759ded9b0fSMartin Blumenstingl		clock-names = "ext_clock";
769ded9b0fSMartin Blumenstingl	};
779ded9b0fSMartin Blumenstingl};
789ded9b0fSMartin Blumenstingl
799ded9b0fSMartin Blumenstingl&ethmac {
809ded9b0fSMartin Blumenstingl	status = "okay";
819ded9b0fSMartin Blumenstingl};
829ded9b0fSMartin Blumenstingl
839ded9b0fSMartin Blumenstingl&ir {
849ded9b0fSMartin Blumenstingl	status = "okay";
859ded9b0fSMartin Blumenstingl	pinctrl-0 = <&remote_input_ao_pins>;
869ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
879ded9b0fSMartin Blumenstingl};
889ded9b0fSMartin Blumenstingl
899ded9b0fSMartin Blumenstingl&saradc {
909ded9b0fSMartin Blumenstingl	status = "okay";
919ded9b0fSMartin Blumenstingl	vref-supply = <&vddio_ao18>;
929ded9b0fSMartin Blumenstingl};
939ded9b0fSMartin Blumenstingl
949ded9b0fSMartin Blumenstingl/* Wireless SDIO Module */
959ded9b0fSMartin Blumenstingl&sd_emmc_a {
969ded9b0fSMartin Blumenstingl	status = "okay";
979ded9b0fSMartin Blumenstingl	pinctrl-0 = <&sdio_pins>;
9867e7607fSJerome Brunet	pinctrl-1 = <&sdio_clk_gate_pins>;
9967e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
1009ded9b0fSMartin Blumenstingl	#address-cells = <1>;
1019ded9b0fSMartin Blumenstingl	#size-cells = <0>;
1029ded9b0fSMartin Blumenstingl
1039ded9b0fSMartin Blumenstingl	bus-width = <4>;
1049ded9b0fSMartin Blumenstingl	cap-sd-highspeed;
1059ded9b0fSMartin Blumenstingl	max-frequency = <100000000>;
1069ded9b0fSMartin Blumenstingl
1079ded9b0fSMartin Blumenstingl	non-removable;
1089ded9b0fSMartin Blumenstingl	disable-wp;
1099ded9b0fSMartin Blumenstingl
1109ded9b0fSMartin Blumenstingl	mmc-pwrseq = <&sdio_pwrseq>;
1119ded9b0fSMartin Blumenstingl
1129ded9b0fSMartin Blumenstingl	vmmc-supply = <&vddao_3v3>;
1139ded9b0fSMartin Blumenstingl	vqmmc-supply = <&vddio_boot>;
1149ded9b0fSMartin Blumenstingl};
1159ded9b0fSMartin Blumenstingl
1169ded9b0fSMartin Blumenstingl/* SD card */
1179ded9b0fSMartin Blumenstingl&sd_emmc_b {
1189ded9b0fSMartin Blumenstingl	status = "okay";
1199ded9b0fSMartin Blumenstingl	pinctrl-0 = <&sdcard_pins>;
12067e7607fSJerome Brunet	pinctrl-1 = <&sdcard_clk_gate_pins>;
12167e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
1229ded9b0fSMartin Blumenstingl
1239ded9b0fSMartin Blumenstingl	bus-width = <4>;
1249ded9b0fSMartin Blumenstingl	cap-sd-highspeed;
1259ded9b0fSMartin Blumenstingl	max-frequency = <100000000>;
1269ded9b0fSMartin Blumenstingl	disable-wp;
1279ded9b0fSMartin Blumenstingl
1289ded9b0fSMartin Blumenstingl	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
1299ded9b0fSMartin Blumenstingl	cd-inverted;
1309ded9b0fSMartin Blumenstingl
1319ded9b0fSMartin Blumenstingl	vmmc-supply = <&vddao_3v3>;
1329ded9b0fSMartin Blumenstingl	vqmmc-supply = <&vddio_boot>;
1339ded9b0fSMartin Blumenstingl};
1349ded9b0fSMartin Blumenstingl
1359ded9b0fSMartin Blumenstingl/* eMMC */
1369ded9b0fSMartin Blumenstingl&sd_emmc_c {
1379ded9b0fSMartin Blumenstingl	status = "okay";
1389ded9b0fSMartin Blumenstingl	pinctrl-0 = <&emmc_pins>;
13967e7607fSJerome Brunet	pinctrl-1 = <&emmc_clk_gate_pins>;
14067e7607fSJerome Brunet	pinctrl-names = "default", "clk-gate";
1419ded9b0fSMartin Blumenstingl
1429ded9b0fSMartin Blumenstingl	bus-width = <8>;
1439ded9b0fSMartin Blumenstingl	cap-mmc-highspeed;
1449ded9b0fSMartin Blumenstingl	max-frequency = <200000000>;
1459ded9b0fSMartin Blumenstingl	non-removable;
1469ded9b0fSMartin Blumenstingl	disable-wp;
1479ded9b0fSMartin Blumenstingl	mmc-ddr-1_8v;
1489ded9b0fSMartin Blumenstingl	mmc-hs200-1_8v;
1499ded9b0fSMartin Blumenstingl
1509ded9b0fSMartin Blumenstingl	mmc-pwrseq = <&emmc_pwrseq>;
1519ded9b0fSMartin Blumenstingl	vmmc-supply = <&vcc_3v3>;
1529ded9b0fSMartin Blumenstingl	vqmmc-supply = <&vddio_boot>;
1539ded9b0fSMartin Blumenstingl};
1549ded9b0fSMartin Blumenstingl
1559ded9b0fSMartin Blumenstingl&pwm_ef {
1569ded9b0fSMartin Blumenstingl	status = "okay";
1579ded9b0fSMartin Blumenstingl	pinctrl-0 = <&pwm_e_pins>;
1589ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
1599ded9b0fSMartin Blumenstingl	clocks = <&clkc CLKID_FCLK_DIV4>;
1609ded9b0fSMartin Blumenstingl	clock-names = "clkin0";
1619ded9b0fSMartin Blumenstingl};
1629ded9b0fSMartin Blumenstingl
1639ded9b0fSMartin Blumenstingl/* This is connected to the Bluetooth module: */
1649ded9b0fSMartin Blumenstingl&uart_A {
1659ded9b0fSMartin Blumenstingl	status = "okay";
1669ded9b0fSMartin Blumenstingl	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
1679ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
1689ded9b0fSMartin Blumenstingl	uart-has-rtscts;
1699ded9b0fSMartin Blumenstingl};
1709ded9b0fSMartin Blumenstingl
1719ded9b0fSMartin Blumenstingl&uart_AO {
1729ded9b0fSMartin Blumenstingl	status = "okay";
1739ded9b0fSMartin Blumenstingl	pinctrl-0 = <&uart_ao_a_pins>;
1749ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
1759ded9b0fSMartin Blumenstingl};
176