/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
 * 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-t5m-txxx.dtsi"

/ {
	aliases {
		serial0 = &uart_b;
		serial1 = &uart_a;
		spi0 = &spifc;
		spi1 = &spicc0;
		spi2 = &spicc1;
		spi3 = &spicc2;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
		i2c4 = &i2c4;
	};

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

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

	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";
	};

	tee: tee {
		compatible = "linaro,optee-tz";
		method = "smc";
	};
};

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

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

/* Wireless SDIO Module */
&sd_emmc_a {
	status = "disabled";
	/*pinctrl-0 = <&sdio_pins>;*/
	/*pinctrl-names = "default";*/
	#address-cells = <1>;
	#size-cells = <0>;

	bus-width = <4>;
	cap-sd-highspeed;
	max-frequency = <100000000>;

	non-removable;
	disable-wp;
	card_type = <3>;

	mmc-pwrseq = <&sdio_pwrseq>;

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

/* SD card */
&sd_emmc_b {
	status = "okay";
	pinctrl-0 = <&sdcard_pins>;
	pinctrl-1 = <&sdcard_pins &to_sduart_pins>;
	pinctrl-names = "sd_all_pins", "sd_uart";

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

	cd-gpios = <&gpio GPIOC_10 GPIO_ACTIVE_HIGH>;
	cd-inverted;

	card_type = <5>;

	init_co_phase = <2>;
	init_tx_phase = <0>;

	sd_hs_co_phase = <2>;
	sd_hs_to_phase = <0>;

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

/* eMMC */
&sd_emmc_c {
	status = "okay";
	pinctrl-0 = <&emmc_pins>;
	pinctrl-names = "default";

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

	init_co_phase = <2>;
	init_tx_phase = <0>;

	hs_co_phase = <2>;
	hs_to_phase = <0>;

	hs2_co_phase = <2>;
	hs2_to_phase = <0>;

	hw_reset = <&gpio GPIOB_9 GPIO_ACTIVE_HIGH>;

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

/* nand */
&nand {
	status = "okay";
	pinctrl-names = "default", "nand_cs_only";
	pinctrl-0 = <&all_nand_pins>;
	pinctrl-1 = <&nand_cs_pins>;
};

&crg20 {
	status = "okay";
	dr_mode = "host";
};

&crg21 {
	status = "okay";
	dr_mode = "host";
};

&crg30 {
	status = "okay";
	dr_mode = "host";
};

&usb20_phy_v2 {
	status = "okay";
	portnum = <1>;
};

&usb30_phy_v2 {
	status = "okay";
	portnum = <0>;
	/* gpio-vbus-power = "GPIOH_6"; */
	/* gpios = <&gpio GPIOh_6 GPIO_ACTIVE_HIGH>; */
};

&usb21_phy_v2 {
	status = "okay";
	portnum = <1>;
};

&usb31_phy_v2 {
	status = "okay";
	portnum = <0>;
	/* gpio-vbus-power = "GPIOH_6"; */
	/* gpios = <&gpio GPIOh_6 GPIO_ACTIVE_HIGH>; */
};

&pwm_ef {
	status = "disabled";
	/* pinctrl-0 = <&pwm_e_pins>; */
	/* pinctrl-names = "default"; */
};

/* This is connected to the Bluetooth module: */
&uart_b {
	status = "okay";
	/* pinctrl-0 = <&a_uart_pins>; */
	/* pinctrl-names = "default";  */
	uart-has-rtscts;
};

&spifc {
	status = "okay";
	cs-gpios = <&gpio GPIOB_13 GPIO_ACTIVE_HIGH>;
	spi-flash@0 {
		status = "okay";
	};
};

&spicc0 {	//for TCON
	status = "disabled";
	pinctrl-names = "default";
	pinctrl-0 = <&spicc0_pins_h>;
	cs-gpios = <&gpio GPIOH_8 GPIO_ACTIVE_HIGH>;
};

&spicc1 {	//for UWB/LocalDimm
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spicc1_pins>;
	cs-gpios = <&gpio GPIOH_22 GPIO_ACTIVE_HIGH>;
};

&spicc2 {
	status = "disabled";
	pinctrl-names = "default";
	pinctrl-0 = <&spicc2_pins_c>;
	cs-gpios = <&gpio GPIOC_3 GPIO_ACTIVE_HIGH>;
};
