meson-gxl-s905x-p212.dtsi 4.1 KB
Newer Older
1
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/*
 * Copyright (c) 2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
 * Based on meson-gx-p23x-q20x.dtsi:
 * - Copyright (c) 2016 Endless Computers, Inc.
 *   Author: Carlo Caione <carlo@endlessm.com>
 * - Copyright (c) 2016 BayLibre, SAS.
 *   Author: Neil Armstrong <narmstrong@baylibre.com>
 */

/* Common DTSI for devices which are based on the P212 reference board. */

#include "meson-gxl-s905x.dtsi"

/ {
	aliases {
		serial0 = &uart_AO;
18
		ethernet0 = &ethmac;
19 20 21 22 23 24 25 26 27 28 29
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory@0 {
		device_type = "memory";
		reg = <0x0 0x0 0x0 0x80000000>;
	};

30 31 32 33 34 35 36 37 38 39 40 41
	hdmi_5v: regulator-hdmi-5v {
		compatible = "regulator-fixed";

		regulator-name = "HDMI_5V";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;

		gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-always-on;
	};

42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
	vddio_boot: regulator-vddio_boot {
		compatible = "regulator-fixed";
		regulator-name = "VDDIO_BOOT";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	vddao_3v3: regulator-vddao_3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VDDAO_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	vddio_ao18: regulator-vddio_ao18 {
		compatible = "regulator-fixed";
		regulator-name = "VDDIO_AO18";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	vcc_3v3: regulator-vcc_3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VCC_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	emmc_pwrseq: emmc-pwrseq {
		compatible = "mmc-pwrseq-emmc";
		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
	};

	wifi32k: wifi32k {
		compatible = "pwm-clock";
		#clock-cells = <0>;
		clock-frequency = <32768>;
		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
	};

	sdio_pwrseq: sdio-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
		clocks = <&wifi32k>;
		clock-names = "ext_clock";
	};
};

&ethmac {
	status = "okay";
};

&ir {
	status = "okay";
	pinctrl-0 = <&remote_input_ao_pins>;
	pinctrl-names = "default";
};

&saradc {
	status = "okay";
	vref-supply = <&vddio_ao18>;
};

/* Wireless SDIO Module */
&sd_emmc_a {
	status = "okay";
	pinctrl-0 = <&sdio_pins>;
109 110
	pinctrl-1 = <&sdio_clk_gate_pins>;
	pinctrl-names = "default", "clk-gate";
111 112 113 114 115
	#address-cells = <1>;
	#size-cells = <0>;

	bus-width = <4>;
	cap-sd-highspeed;
116
	max-frequency = <50000000>;
117 118 119 120

	non-removable;
	disable-wp;

121 122 123
	/* WiFi firmware requires power to be kept while in suspend */
	keep-power-in-suspend;

124 125 126 127 128 129 130 131 132 133
	mmc-pwrseq = <&sdio_pwrseq>;

	vmmc-supply = <&vddao_3v3>;
	vqmmc-supply = <&vddio_boot>;
};

/* SD card */
&sd_emmc_b {
	status = "okay";
	pinctrl-0 = <&sdcard_pins>;
134 135
	pinctrl-1 = <&sdcard_clk_gate_pins>;
	pinctrl-names = "default", "clk-gate";
136 137 138

	bus-width = <4>;
	cap-sd-highspeed;
139
	max-frequency = <50000000>;
140 141
	disable-wp;

142
	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
143 144 145 146 147 148 149 150

	vmmc-supply = <&vddao_3v3>;
	vqmmc-supply = <&vddio_boot>;
};

/* eMMC */
&sd_emmc_c {
	status = "okay";
151 152 153
	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
	pinctrl-1 = <&emmc_clk_gate_pins>;
	pinctrl-names = "default", "clk-gate";
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181

	bus-width = <8>;
	cap-mmc-highspeed;
	max-frequency = <200000000>;
	non-removable;
	disable-wp;
	mmc-ddr-1_8v;
	mmc-hs200-1_8v;

	mmc-pwrseq = <&emmc_pwrseq>;
	vmmc-supply = <&vcc_3v3>;
	vqmmc-supply = <&vddio_boot>;
};

&pwm_ef {
	status = "okay";
	pinctrl-0 = <&pwm_e_pins>;
	pinctrl-names = "default";
	clocks = <&clkc CLKID_FCLK_DIV4>;
	clock-names = "clkin0";
};

/* This is connected to the Bluetooth module: */
&uart_A {
	status = "okay";
	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
	pinctrl-names = "default";
	uart-has-rtscts;
182 183 184 185 186 187 188 189

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
		max-speed = <2000000>;
		clocks = <&wifi32k>;
		clock-names = "lpo";
	};
190 191 192 193 194 195 196
};

&uart_AO {
	status = "okay";
	pinctrl-0 = <&uart_ao_a_pins>;
	pinctrl-names = "default";
};
197 198 199 200

&usb0 {
	status = "okay";
};
201 202

&usb2_phy0 {
203 204 205 206
	/*
	 * HDMI_5V is also used as supply for the USB VBUS.
	 */
	phy-supply = <&hdmi_5v>;
207
};