1*4549e789STom Rini// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
296e7b5a1SNeil Armstrong/*
396e7b5a1SNeil Armstrong * Copyright (c) 2017 BayLibre, SAS.
496e7b5a1SNeil Armstrong * Author: Neil Armstrong <narmstrong@baylibre.com>
596e7b5a1SNeil Armstrong * Author: Jerome Brunet <jbrunet@baylibre.com>
696e7b5a1SNeil Armstrong */
796e7b5a1SNeil Armstrong
896e7b5a1SNeil Armstrong/dts-v1/;
996e7b5a1SNeil Armstrong
1096e7b5a1SNeil Armstrong#include <dt-bindings/input/input.h>
1196e7b5a1SNeil Armstrong
1296e7b5a1SNeil Armstrong#include "meson-gxl-s905x.dtsi"
1396e7b5a1SNeil Armstrong
1496e7b5a1SNeil Armstrong/ {
1596e7b5a1SNeil Armstrong	compatible = "libretech,cc", "amlogic,s905x", "amlogic,meson-gxl";
1696e7b5a1SNeil Armstrong	model = "Libre Technology CC";
1796e7b5a1SNeil Armstrong
1896e7b5a1SNeil Armstrong	aliases {
1996e7b5a1SNeil Armstrong		serial0 = &uart_AO;
2096e7b5a1SNeil Armstrong	};
2196e7b5a1SNeil Armstrong
2296e7b5a1SNeil Armstrong	chosen {
2396e7b5a1SNeil Armstrong		stdout-path = "serial0:115200n8";
2496e7b5a1SNeil Armstrong	};
2596e7b5a1SNeil Armstrong
2696e7b5a1SNeil Armstrong	cvbs-connector {
2796e7b5a1SNeil Armstrong		compatible = "composite-video-connector";
2896e7b5a1SNeil Armstrong
2996e7b5a1SNeil Armstrong		port {
3096e7b5a1SNeil Armstrong			cvbs_connector_in: endpoint {
3196e7b5a1SNeil Armstrong				remote-endpoint = <&cvbs_vdac_out>;
3296e7b5a1SNeil Armstrong			};
3396e7b5a1SNeil Armstrong		};
3496e7b5a1SNeil Armstrong	};
3596e7b5a1SNeil Armstrong
3696e7b5a1SNeil Armstrong	emmc_pwrseq: emmc-pwrseq {
3796e7b5a1SNeil Armstrong		compatible = "mmc-pwrseq-emmc";
3896e7b5a1SNeil Armstrong		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
3996e7b5a1SNeil Armstrong	};
4096e7b5a1SNeil Armstrong
4196e7b5a1SNeil Armstrong	hdmi-connector {
4296e7b5a1SNeil Armstrong		compatible = "hdmi-connector";
4396e7b5a1SNeil Armstrong		type = "a";
4496e7b5a1SNeil Armstrong
4596e7b5a1SNeil Armstrong		port {
4696e7b5a1SNeil Armstrong			hdmi_connector_in: endpoint {
4796e7b5a1SNeil Armstrong				remote-endpoint = <&hdmi_tx_tmds_out>;
4896e7b5a1SNeil Armstrong			};
4996e7b5a1SNeil Armstrong		};
5096e7b5a1SNeil Armstrong	};
5196e7b5a1SNeil Armstrong
5296e7b5a1SNeil Armstrong	leds {
5396e7b5a1SNeil Armstrong		compatible = "gpio-leds";
5496e7b5a1SNeil Armstrong
5596e7b5a1SNeil Armstrong		system {
5696e7b5a1SNeil Armstrong			label = "librecomputer:system-status";
5796e7b5a1SNeil Armstrong			gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
5896e7b5a1SNeil Armstrong			default-state = "on";
5996e7b5a1SNeil Armstrong			panic-indicator;
6096e7b5a1SNeil Armstrong		};
6196e7b5a1SNeil Armstrong
6296e7b5a1SNeil Armstrong		blue {
6396e7b5a1SNeil Armstrong			label = "librecomputer:blue";
6496e7b5a1SNeil Armstrong			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
6596e7b5a1SNeil Armstrong			linux,default-trigger = "heartbeat";
6696e7b5a1SNeil Armstrong		};
6796e7b5a1SNeil Armstrong	};
6896e7b5a1SNeil Armstrong
6996e7b5a1SNeil Armstrong	memory@0 {
7096e7b5a1SNeil Armstrong		device_type = "memory";
7196e7b5a1SNeil Armstrong		reg = <0x0 0x0 0x0 0x80000000>;
7296e7b5a1SNeil Armstrong	};
7396e7b5a1SNeil Armstrong
7496e7b5a1SNeil Armstrong	vcc_3v3: regulator-vcc_3v3 {
7596e7b5a1SNeil Armstrong		compatible = "regulator-fixed";
7696e7b5a1SNeil Armstrong		regulator-name = "VCC_3V3";
7796e7b5a1SNeil Armstrong		regulator-min-microvolt = <3300000>;
7896e7b5a1SNeil Armstrong		regulator-max-microvolt = <3300000>;
7996e7b5a1SNeil Armstrong	};
8096e7b5a1SNeil Armstrong
8196e7b5a1SNeil Armstrong	vcc_card: regulator-vcc-card {
8296e7b5a1SNeil Armstrong		compatible = "regulator-gpio";
8396e7b5a1SNeil Armstrong
8496e7b5a1SNeil Armstrong		regulator-name = "VCC_CARD";
8596e7b5a1SNeil Armstrong		regulator-min-microvolt = <1800000>;
8696e7b5a1SNeil Armstrong		regulator-max-microvolt = <3300000>;
8796e7b5a1SNeil Armstrong
8896e7b5a1SNeil Armstrong		gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
8996e7b5a1SNeil Armstrong		gpios-states = <0>;
9096e7b5a1SNeil Armstrong
9196e7b5a1SNeil Armstrong		states = <3300000 0>,
9296e7b5a1SNeil Armstrong			 <1800000 1>;
9396e7b5a1SNeil Armstrong	};
9496e7b5a1SNeil Armstrong
9596e7b5a1SNeil Armstrong	vddio_boot: regulator-vddio_boot {
9696e7b5a1SNeil Armstrong		compatible = "regulator-fixed";
9796e7b5a1SNeil Armstrong		regulator-name = "VDDIO_BOOT";
9896e7b5a1SNeil Armstrong		regulator-min-microvolt = <3300000>;
9996e7b5a1SNeil Armstrong		regulator-max-microvolt = <3300000>;
10096e7b5a1SNeil Armstrong	};
10196e7b5a1SNeil Armstrong};
10296e7b5a1SNeil Armstrong
10396e7b5a1SNeil Armstrong&cvbs_vdac_port {
10496e7b5a1SNeil Armstrong	cvbs_vdac_out: endpoint {
10596e7b5a1SNeil Armstrong		remote-endpoint = <&cvbs_connector_in>;
10696e7b5a1SNeil Armstrong	};
10796e7b5a1SNeil Armstrong};
10896e7b5a1SNeil Armstrong
10996e7b5a1SNeil Armstrong&ethmac {
11096e7b5a1SNeil Armstrong	status = "okay";
11196e7b5a1SNeil Armstrong};
11296e7b5a1SNeil Armstrong
11396e7b5a1SNeil Armstrong&ir {
11496e7b5a1SNeil Armstrong	status = "okay";
11596e7b5a1SNeil Armstrong	pinctrl-0 = <&remote_input_ao_pins>;
11696e7b5a1SNeil Armstrong	pinctrl-names = "default";
11796e7b5a1SNeil Armstrong};
11896e7b5a1SNeil Armstrong
11996e7b5a1SNeil Armstrong&hdmi_tx {
12096e7b5a1SNeil Armstrong	status = "okay";
12196e7b5a1SNeil Armstrong	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
12296e7b5a1SNeil Armstrong	pinctrl-names = "default";
12396e7b5a1SNeil Armstrong};
12496e7b5a1SNeil Armstrong
12596e7b5a1SNeil Armstrong&hdmi_tx_tmds_port {
12696e7b5a1SNeil Armstrong	hdmi_tx_tmds_out: endpoint {
12796e7b5a1SNeil Armstrong		remote-endpoint = <&hdmi_connector_in>;
12896e7b5a1SNeil Armstrong	};
12996e7b5a1SNeil Armstrong};
13096e7b5a1SNeil Armstrong
13196e7b5a1SNeil Armstrong/* SD card */
13296e7b5a1SNeil Armstrong&sd_emmc_b {
13396e7b5a1SNeil Armstrong	status = "okay";
13496e7b5a1SNeil Armstrong	pinctrl-0 = <&sdcard_pins>;
13596e7b5a1SNeil Armstrong	pinctrl-names = "default";
13696e7b5a1SNeil Armstrong
13796e7b5a1SNeil Armstrong	bus-width = <4>;
13896e7b5a1SNeil Armstrong	cap-sd-highspeed;
13996e7b5a1SNeil Armstrong	max-frequency = <100000000>;
14096e7b5a1SNeil Armstrong	disable-wp;
14196e7b5a1SNeil Armstrong
14296e7b5a1SNeil Armstrong	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
14396e7b5a1SNeil Armstrong	cd-inverted;
14496e7b5a1SNeil Armstrong
14596e7b5a1SNeil Armstrong	vmmc-supply = <&vcc_3v3>;
14696e7b5a1SNeil Armstrong	vqmmc-supply = <&vcc_card>;
14796e7b5a1SNeil Armstrong};
14896e7b5a1SNeil Armstrong
14996e7b5a1SNeil Armstrong/* eMMC */
15096e7b5a1SNeil Armstrong&sd_emmc_c {
15196e7b5a1SNeil Armstrong	status = "okay";
15296e7b5a1SNeil Armstrong	pinctrl-0 = <&emmc_pins>;
15396e7b5a1SNeil Armstrong	pinctrl-names = "default";
15496e7b5a1SNeil Armstrong
15596e7b5a1SNeil Armstrong	bus-width = <8>;
15696e7b5a1SNeil Armstrong	cap-mmc-highspeed;
15796e7b5a1SNeil Armstrong	max-frequency = <50000000>;
15896e7b5a1SNeil Armstrong	non-removable;
15996e7b5a1SNeil Armstrong	disable-wp;
16096e7b5a1SNeil Armstrong
16196e7b5a1SNeil Armstrong	mmc-pwrseq = <&emmc_pwrseq>;
16296e7b5a1SNeil Armstrong	vmmc-supply = <&vcc_3v3>;
16396e7b5a1SNeil Armstrong	vqmmc-supply = <&vddio_boot>;
16496e7b5a1SNeil Armstrong};
16596e7b5a1SNeil Armstrong
16696e7b5a1SNeil Armstrong&uart_AO {
16796e7b5a1SNeil Armstrong	status = "okay";
16896e7b5a1SNeil Armstrong	pinctrl-0 = <&uart_ao_a_pins>;
16996e7b5a1SNeil Armstrong	pinctrl-names = "default";
17096e7b5a1SNeil Armstrong};
171