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

#include "meson-sm1.dtsi"
#include <dt-bindings/leds/common.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/gpio/meson-g12a-gpio.h>

/ {
	adc-keys {
		compatible = "adc-keys";
		io-channels = <&saradc 2>;
		io-channel-names = "buttons";
		keyup-threshold-microvolt = <1800000>;

		button-sw3 {
			label = "SW3";
			linux,code = <BTN_3>;
			press-threshold-microvolt = <1700000>;
		};
	};

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

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

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

	gpio-keys {
		compatible = "gpio-keys";

		key {
			label = "SW1";
			linux,code = <BTN_1>;
			gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>;
			interrupt-parent = <&gpio_intc>;
			interrupts = <IRQID_GPIOAO_3 IRQ_TYPE_EDGE_BOTH>;
		};
	};

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

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

	leds {
		compatible = "gpio-leds";

		led-green {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_STATUS;
			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
		};

		led-blue {
			color = <LED_COLOR_ID_BLUE>;
			function = LED_FUNCTION_STATUS;
			gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "heartbeat";
		};
	};

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

	emmc_1v8: regulator-emmc-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "EMMC_1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vddao_3v3>;
		regulator-always-on;
	};

	dc_in: regulator-dc-in {
		compatible = "regulator-fixed";
		regulator-name = "DC_IN";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
	};

	vddio_c: regulator-vddio-c {
		compatible = "regulator-gpio";
		regulator-name = "VDDIO_C";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;

		enable-gpios = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>;
		enable-active-high;
		regulator-always-on;

		gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_DRAIN>;
		gpios-states = <1>;

		states = <1800000 0>,
			 <3300000 1>;
	};

	tflash_vdd: regulator-tflash-vdd {
		compatible = "regulator-fixed";
		regulator-name = "TFLASH_VDD";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&dc_in>;
		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
		enable-active-high;
		regulator-always-on;
	};

	vddao_1v8: regulator-vddao-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "VDDAO_1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vddao_3v3>;
		regulator-always-on;
	};

	vddao_3v3: regulator-vddao-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VDDAO_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&dc_in>;
		regulator-always-on;
	};

	vddcpu: regulator-vddcpu {
		/*
		 * SY8120B1ABC DC/DC Regulator.
		 */
		compatible = "pwm-regulator";

		regulator-name = "VDDCPU";
		regulator-min-microvolt = <690000>;
		regulator-max-microvolt = <1050000>;

		pwm-supply = <&dc_in>;

		pwms = <&pwm_AO_cd 1 1250 0>;
		pwm-dutycycle-range = <100 0>;

		regulator-boot-on;
		regulator-always-on;
	};

	/* USB Hub Power Enable */
	vl_pwr_en: regulator-vl-pwr-en {
		compatible = "regulator-fixed";
		regulator-name = "VL_PWR_EN";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		vin-supply = <&dc_in>;

		gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};
};

&arb {
	status = "okay";
};

&cpu0 {
	cpu-supply = <&vddcpu>;
	operating-points-v2 = <&cpu_opp_table>;
	clocks = <&clkc CLKID_CPU_CLK>;
	clock-latency = <50000>;
};

&cpu1 {
	cpu-supply = <&vddcpu>;
	operating-points-v2 = <&cpu_opp_table>;
	clocks = <&clkc CLKID_CPU1_CLK>;
	clock-latency = <50000>;
};

&cpu2 {
	cpu-supply = <&vddcpu>;
	operating-points-v2 = <&cpu_opp_table>;
	clocks = <&clkc CLKID_CPU2_CLK>;
	clock-latency = <50000>;
};

&cpu3 {
	cpu-supply = <&vddcpu>;
	operating-points-v2 = <&cpu_opp_table>;
	clocks = <&clkc CLKID_CPU3_CLK>;
	clock-latency = <50000>;
};

&ext_mdio {
	external_phy: ethernet-phy@0 {
		/* Realtek RTL8211F (0x001cc916) */
		reg = <0>;
		max-speed = <1000>;

		interrupt-parent = <&gpio_intc>;
		/* MAC_INTR on GPIOZ_14 */
		interrupts = <IRQID_GPIOZ_14 IRQ_TYPE_LEVEL_LOW>;
	};
};

&ethmac {
	pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
	pinctrl-names = "default";
	status = "okay";
	phy-mode = "rgmii-txid";
	phy-handle = <&external_phy>;
};

&gpio {
	gpio-line-names =
		/* GPIOZ */
		"ETH_MDIO", /* GPIOZ_0 */
		"ETH_MDC", /* GPIOZ_1 */
		"ETH_RXCLK", /* GPIOZ_2 */
		"ETH_RX_DV", /* GPIOZ_3 */
		"ETH_RXD0", /* GPIOZ_4 */
		"ETH_RXD1", /* GPIOZ_5 */
		"ETH_RXD2", /* GPIOZ_6 */
		"ETH_RXD3", /* GPIOZ_7 */
		"ETH_TXCLK", /* GPIOZ_8 */
		"ETH_TXEN", /* GPIOZ_9 */
		"ETH_TXD0", /* GPIOZ_10 */
		"ETH_TXD1", /* GPIOZ_11 */
		"ETH_TXD2", /* GPIOZ_12 */
		"ETH_TXD3", /* GPIOZ_13 */
		"ETH_INTR", /* GPIOZ_14 */
		"ETH_NRST", /* GPIOZ_15 */
		/* GPIOH */
		"HDMI_SDA", /* GPIOH_0 */
		"HDMI_SCL", /* GPIOH_1 */
		"HDMI_HPD", /* GPIOH_2 */
		"HDMI_CEC", /* GPIOH_3 */
		"VL-RST_N", /* GPIOH_4 */
		"CON1-P36", /* GPIOH_5 */
		"VL-PWREN", /* GPIOH_6 */
		"WiFi_3V3_1V8", /* GPIOH_7 */
		"TFLASH_VDD_EN", /* GPIOH_8 */
		/* BOOT */
		"eMMC_D0", /* BOOT_0 */
		"eMMC_D1", /* BOOT_1 */
		"eMMC_D2", /* BOOT_2 */
		"eMMC_D3", /* BOOT_3 */
		"eMMC_D4", /* BOOT_4 */
		"eMMC_D5", /* BOOT_5 */
		"eMMC_D6", /* BOOT_6 */
		"eMMC_D7", /* BOOT_7 */
		"eMMC_CLK", /* BOOT_8 */
		"",
		"eMMC_CMD", /* BOOT_10 */
		"",
		"eMMC_RST#", /* BOOT_12 */
		"eMMC_DS", /* BOOT_13 */
		"", "",
		/* GPIOC */
		"SD_D0_B", /* GPIOC_0 */
		"SD_D1_B", /* GPIOC_1 */
		"SD_D2_B", /* GPIOC_2 */
		"SD_D3_B", /* GPIOC_3 */
		"SD_CLK_B", /* GPIOC_4 */
		"SD_CMD_B", /* GPIOC_5 */
		"CARD_EN_DET", /* GPIOC_6 */
		"",
		/* GPIOA */
		"", "", "", "", "", "", "", "",
		"", "", "", "", "", "",
		"CON1-P27", /* GPIOA_14 */
		"CON1-P28", /* GPIOA_15 */
		/* GPIOX */
		"CON1-P16", /* GPIOX_0 */
		"CON1-P18", /* GPIOX_1 */
		"CON1-P22", /* GPIOX_2 */
		"CON1-P11", /* GPIOX_3 */
		"CON1-P13", /* GPIOX_4 */
		"CON1-P07", /* GPIOX_5 */
		"CON1-P33", /* GPIOX_6 */
		"CON1-P15", /* GPIOX_7 */
		"CON1-P19", /* GPIOX_8 */
		"CON1-P21", /* GPIOX_9 */
		"CON1-P24", /* GPIOX_10 */
		"CON1-P23", /* GPIOX_11 */
		"CON1-P08", /* GPIOX_12 */
		"CON1-P10", /* GPIOX_13 */
		"CON1-P29", /* GPIOX_14 */
		"CON1-P31", /* GPIOX_15 */
		"CON1-P26", /* GPIOX_16 */
		"CON1-P03", /* GPIOX_17 */
		"CON1-P05", /* GPIOX_18 */
		"CON1-P32"; /* GPIOX_19 */

	/*
	 * WARNING: The USB Hub needs a reset signal to be turned high in
	 * order to be detected by the USB Controller. This signal should
	 * be handled by a USB specific power sequence to reset the Hub
	 * when the USB bus is powered down.
	 */
	usb-hub-hog {
		gpio-hog;
		gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "usb-hub-reset";
	};
};

&gpio_ao {
	gpio-line-names =
		/* GPIOAO */
		"DEBUG TX", /* GPIOAO_0 */
		"DEBUG RX", /* GPIOAO_1 */
		"SYS_LED2", /* GPIOAO_2 */
		"UPDATE_KEY", /* GPIOAO_3 */
		"CON1-P40", /* GPIOAO_4 */
		"IR_IN", /* GPIOAO_5 */
		"TF_3V3N_1V8_EN", /* GPIOAO_6 */
		"CON1-P35", /* GPIOAO_7 */
		"CON1-P12", /* GPIOAO_8 */
		"CON1-P37", /* GPIOAO_9 */
		"CON1-P38", /* GPIOAO_10 */
		"SYS_LED", /* GPIOAO_11 */
		/* GPIOE */
		"VDDEE_PWM", /* GPIOE_0 */
		"VDDCPU_PWM", /* GPIOE_1 */
		"TF_PWR_EN"; /* GPIOE_2 */
};

&hdmi_tx {
	status = "okay";
	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
	pinctrl-names = "default";
	hdmi-supply = <&dc_in>;
};

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

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

&pwm_AO_cd {
	pinctrl-0 = <&pwm_ao_d_e_pins>;
	pinctrl-names = "default";
	clocks = <&xtal>;
	clock-names = "clkin1";
	status = "okay";
};

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

/* SD card */
&sd_emmc_b {
	status = "okay";
	pinctrl-0 = <&sdcard_c_pins>;
	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
	pinctrl-names = "default", "clk-gate";

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

	/* TOFIX: SD card is barely usable in SDR modes */

	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
	vmmc-supply = <&tflash_vdd>;
	vqmmc-supply = <&vddio_c>;
};

/* eMMC */
&sd_emmc_c {
	status = "okay";
	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_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 = <&vddao_3v3>;
	vqmmc-supply = <&emmc_1v8>;
};

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

&usb {
	status = "okay";
};

&usb2_phy0 {
	phy-supply = <&dc_in>;
};

&usb2_phy1 {
	/* Enable the hub which is connected to this port */
	phy-supply = <&vl_pwr_en>;
};
