// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2018 BayLibre, SAS.
 * Author: Neil Armstrong <narmstrong@baylibre.com>
 * Author: Jerome Brunet <jbrunet@baylibre.com>
 */

/dts-v1/;

#include <dt-bindings/input/input.h>

#include "meson-gxl-s905x.dtsi"

/ {
	compatible = "libretech,aml-s805x-ac", "amlogic,s805x",
		     "amlogic,meson-gxl";
	model = "Libre Computer AML-S805X-AC";

	aliases {
		serial0 = &uart_AO;
		ethernet0 = &ethmac;
		spi0 = &spifc;
	};

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

	cvbs-connector {
		/*
		 * The pads are present but no connector is soldered on
		 * 2J2, so keep this off by default.
		 */
		status = "disabled";
		compatible = "composite-video-connector";

		port {
			cvbs_connector_in: endpoint {
				remote-endpoint = <&cvbs_vdac_out>;
			};
		};
	};

	dc_5v: regulator-dc_5v {
		compatible = "regulator-fixed";
		regulator-name = "DC_5V";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
	};

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

	hdmi-connector {
		compatible = "hdmi-connector";
		type = "a";

		port {
			hdmi_connector_in: endpoint {
				remote-endpoint = <&hdmi_tx_tmds_out>;
			};
		};
	};

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

	vcck: regulator-vcck {
		compatible = "regulator-fixed";
		regulator-name = "VCCK";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&dc_5v>;

		/*
		 * This is controlled by GPIOAO_9 we reserve this but
		 * claiming it as done below reset the board anyway
		 * Need to investigate this
		 *
		 * gpio = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
		 * enable-active-high;
		 */
		regulator-always-on;
	};

	vcc_3v3: regulator-vcc_3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VCC_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&dc_5v>;
		regulator-always-on;
	};

	vddio_boot: regulator-vddio_boot {
		compatible = "regulator-fixed";
		regulator-name = "VDDIO_BOOT";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vcc_3v3>;
		regulator-always-on;
	};
};

&cec_AO {
	status = "okay";
	pinctrl-0 = <&ao_cec_pins>;
	pinctrl-names = "default";
	hdmi-phandle = <&hdmi_tx>;
};

&cvbs_vdac_port {
	cvbs_vdac_out: endpoint {
		remote-endpoint = <&cvbs_connector_in>;
	};
};

&ethmac {
	status = "okay";
};

&internal_phy {
	pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
	pinctrl-names = "default";
};

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

&hdmi_tx {
	status = "okay";
	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
	pinctrl-names = "default";
};

&hdmi_tx_tmds_port {
	hdmi_tx_tmds_out: endpoint {
		remote-endpoint = <&hdmi_connector_in>;
	};
};

&gpio_ao {
	gpio-line-names = "UART TX",
			  "UART RX",
			  "7J1 Header Pin31",
			  "", "", "", "",
			  "IR In",
			  "HDMI CEC",
			  "5V VCCK Regulator",
			  /* GPIO_TEST_N */
			  "";
};

&gpio {
	gpio-line-names = /* Bank GPIOZ */
			  "", "", "", "", "", "", "",
			  "", "", "", "", "", "", "",
			  "Eth Link LED", "Eth Activity LED",
			  /* Bank GPIOH */
			  "HDMI HPD", "HDMI SDA", "HDMI SCL",
			  "", "7J1 Header Pin13",
			  "7J1 Header Pin15",
			  "7J1 Header Pin7",
			  "7J1 Header Pin12",
			  "7J1 Header Pin16",
			  "7J1 Header Pin18",
			  /* Bank BOOT */
			  "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3",
			  "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7",
			  "eMMC Clk", "eMMC Reset", "eMMC CMD",
			  "SPI NOR MOSI", "SPI NOR MISO", "SPI NOR Clk",
			  "", "SPI NOR Chip Select",
			  /* Bank CARD */
			  "", "", "", "", "", "", "",
			  /* Bank GPIODV */
			  "", "", "", "", "", "", "", "", "", "", "", "",
			  "", "", "", "", "", "", "", "", "", "", "", "",
			  "7J1 Header Pin27", "7J1 Header Pin28", "",
			  "7J1 Header Pin29",
			  "VCCK Regulator", "VDDEE Regulator",
			  /* Bank GPIOX */
			  "7J1 Header Pin22", "7J1 Header Pin26",
			  "7J1 Header Pin36", "7J1 Header Pin38",
			  "7J1 Header Pin40", "7J1 Header Pin37",
			  "7J1 Header Pin33", "7J1 Header Pin35",
			  "7J1 Header Pin19", "7J1 Header Pin21",
			  "7J1 Header Pin24", "7J1 Header Pin23",
			  "7J1 Header Pin8", "7J1 Header Pin10",
			  "", "", "7J1 Header Pin32", "", "",
			  /* Bank GPIOCLK */
			  "", "";
};

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

/* eMMC */
&sd_emmc_c {
	status = "okay";
	pinctrl-0 = <&emmc_pins>;
	pinctrl-1 = <&emmc_clk_gate_pins>;
	pinctrl-names = "default", "clk-gate";

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

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

&spifc {
	status = "okay";
	pinctrl-0 = <&nor_pins>;
	pinctrl-names = "default";

	w25q32: spi-flash@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <3000000>;
	};
};

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

&usb0 {
	status = "okay";
};
