File Index
Files and directories
Sign in
FILE

meson-gxbb-p20x.dtsi

File preview with syntax highlighting.

linux-6.19.14/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi DEVICETREE
  1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2/*
  3 * Copyright (c) 2016 Andreas Färber
  4 * Copyright (c) 2016 BayLibre, Inc.
  5 * Author: Kevin Hilman <khilman@kernel.org>
  6 */
  7
  8#include "meson-gxbb.dtsi"
  9
 10/ {
 11	aliases {
 12		serial0 = &uart_AO;
 13		ethernet0 = &ethmac;
 14	};
 15
 16	chosen {
 17		stdout-path = "serial0:115200n8";
 18	};
 19
 20	memory@0 {
 21		device_type = "memory";
 22		reg = <0x0 0x0 0x0 0x40000000>;
 23	};
 24
 25	usb_pwr: regulator-usb-pwrs {
 26		compatible = "regulator-fixed";
 27
 28		regulator-name = "USB_PWR";
 29
 30		regulator-min-microvolt = <5000000>;
 31		regulator-max-microvolt = <5000000>;
 32
 33		/* signal name in schematic: USB_PWR_EN */
 34		gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
 35		enable-active-high;
 36	};
 37
 38	vddio_card: gpio-regulator {
 39		compatible = "regulator-gpio";
 40
 41		regulator-name = "VDDIO_CARD";
 42		regulator-min-microvolt = <1800000>;
 43		regulator-max-microvolt = <3300000>;
 44
 45		gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
 46		gpios-states = <1>;
 47
 48		/* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
 49		states = <1800000 0>,
 50			 <3300000 1>;
 51
 52		regulator-settling-time-up-us = <10000>;
 53		regulator-settling-time-down-us = <150000>;
 54	};
 55
 56	vddio_boot: regulator-vddio-boot {
 57		compatible = "regulator-fixed";
 58		regulator-name = "VDDIO_BOOT";
 59		regulator-min-microvolt = <1800000>;
 60		regulator-max-microvolt = <1800000>;
 61	};
 62
 63	vddao_3v3: regulator-vddao-3v3 {
 64		compatible = "regulator-fixed";
 65		regulator-name = "VDDAO_3V3";
 66		regulator-min-microvolt = <3300000>;
 67		regulator-max-microvolt = <3300000>;
 68	};
 69
 70	vcc_3v3: regulator-vcc-3v3 {
 71		compatible = "regulator-fixed";
 72		regulator-name = "VCC_3V3";
 73		regulator-min-microvolt = <3300000>;
 74		regulator-max-microvolt = <3300000>;
 75	};
 76
 77	emmc_pwrseq: emmc-pwrseq {
 78		compatible = "mmc-pwrseq-emmc";
 79		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
 80	};
 81
 82	wifi32k: wifi32k {
 83		compatible = "pwm-clock";
 84		#clock-cells = <0>;
 85		clock-frequency = <32768>;
 86		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
 87	};
 88
 89	sdio_pwrseq: sdio-pwrseq {
 90		compatible = "mmc-pwrseq-simple";
 91		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
 92		clocks = <&wifi32k>;
 93		clock-names = "ext_clock";
 94	};
 95
 96	cvbs_connector: cvbs-connector {
 97		compatible = "composite-video-connector";
 98
 99		port {
100			cvbs_connector_in: endpoint {
101				remote-endpoint = <&cvbs_vdac_out>;
102			};
103		};
104	};
105
106	hdmi-connector {
107		compatible = "hdmi-connector";
108		type = "a";
109
110		port {
111			hdmi_connector_in: endpoint {
112				remote-endpoint = <&hdmi_tx_tmds_out>;
113			};
114		};
115	};
116};
117
118&cec_AO {
119	status = "okay";
120	pinctrl-0 = <&ao_cec_pins>;
121	pinctrl-names = "default";
122	hdmi-phandle = <&hdmi_tx>;
123};
124
125&cvbs_vdac_port {
126	cvbs_vdac_out: endpoint {
127		remote-endpoint = <&cvbs_connector_in>;
128	};
129};
130
131&hdmi_tx {
132	status = "okay";
133	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
134	pinctrl-names = "default";
135};
136
137&hdmi_tx_tmds_port {
138	hdmi_tx_tmds_out: endpoint {
139		remote-endpoint = <&hdmi_connector_in>;
140	};
141};
142
143&ir {
144	status = "okay";
145	pinctrl-0 = <&remote_input_ao_pins>;
146	pinctrl-names = "default";
147};
148
149&pwm_ef {
150	status = "okay";
151	pinctrl-0 = <&pwm_e_pins>;
152	pinctrl-names = "default";
153};
154
155/* Wireless SDIO Module */
156&sd_emmc_a {
157	status = "okay";
158	pinctrl-0 = <&sdio_pins>;
159	pinctrl-1 = <&sdio_clk_gate_pins>;
160	pinctrl-names = "default", "clk-gate";
161	#address-cells = <1>;
162	#size-cells = <0>;
163
164	bus-width = <4>;
165	cap-sd-highspeed;
166	max-frequency = <50000000>;
167
168	non-removable;
169	disable-wp;
170
171	/* WiFi firmware requires power to be kept while in suspend */
172	keep-power-in-suspend;
173
174	mmc-pwrseq = <&sdio_pwrseq>;
175
176	vmmc-supply = <&vddao_3v3>;
177	vqmmc-supply = <&vddio_boot>;
178
179	sdio: wifi@1 {
180		reg = <1>;
181	};
182};
183
184/* SD card */
185&sd_emmc_b {
186	status = "okay";
187	pinctrl-0 = <&sdcard_pins>;
188	pinctrl-1 = <&sdcard_clk_gate_pins>;
189	pinctrl-names = "default", "clk-gate";
190
191	bus-width = <4>;
192	cap-sd-highspeed;
193	sd-uhs-sdr12;
194	sd-uhs-sdr25;
195	sd-uhs-sdr50;
196	max-frequency = <100000000>;
197	disable-wp;
198
199	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
200
201	vmmc-supply = <&vddao_3v3>;
202	vqmmc-supply = <&vddio_card>;
203};
204
205/* eMMC */
206&sd_emmc_c {
207	status = "okay";
208	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
209	pinctrl-1 = <&emmc_clk_gate_pins>;
210	pinctrl-names = "default", "clk-gate";
211
212	bus-width = <8>;
213	cap-mmc-highspeed;
214	max-frequency = <200000000>;
215	non-removable;
216	disable-wp;
217	mmc-ddr-1_8v;
218	mmc-hs200-1_8v;
219
220	mmc-pwrseq = <&emmc_pwrseq>;
221	vmmc-supply = <&vcc_3v3>;
222	vqmmc-supply = <&vddio_boot>;
223};
224
225/* This UART is brought out to the DB9 connector */
226&uart_AO {
227	status = "okay";
228	pinctrl-0 = <&uart_ao_a_pins>;
229	pinctrl-names = "default";
230};
231
232&usb0_phy {
233	status = "okay";
234	phy-supply = <&usb_pwr>;
235};
236
237&usb1_phy {
238	status = "okay";
239};
240
241&usb0 {
242	status = "okay";
243};
244
245&usb1 {
246	status = "okay";
247};
~/ Read-only file preview.