// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright 2020, Compass Electronics Group, LLC
 */

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

/ {
	backlight_lvds: backlight-lvds {
		compatible = "pwm-backlight";
		power-supply = <&reg_lcd>;
		enable-gpios = <&gpio_exp1 3 GPIO_ACTIVE_LOW>;
		pwms = <&pwm2 0 50000>;
		brightness-levels = <0 4 8 16 32 64 128 255>;
		default-brightness-level = <6>;
	};

	backlight_rgb: backlight-rgb {
		compatible = "pwm-backlight";
		power-supply = <&reg_lcd>;
		enable-gpios = <&gpio_exp1 7 GPIO_ACTIVE_LOW>;
		pwms = <&pwm0 0 50000>;
		brightness-levels = <0 4 8 16 32 64 128 255>;
		default-brightness-level = <6>;
	};

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

		port {
			hdmi0_con: endpoint {
				remote-endpoint = <&rcar_dw_hdmi0_out>;
			};
		};
	};

	keys {
		compatible = "gpio-keys";

		key-1 {
			gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_1>;
			label = "Switch-1";
			wakeup-source;
			debounce-interval = <20>;
		};
		key-2 {
			gpios = <&gpio3 13 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_2>;
			label = "Switch-2";
			wakeup-source;
			debounce-interval = <20>;
		};
		key-3 {
			gpios = <&gpio5 17 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_3>;
			label = "Switch-3";
			wakeup-source;
			debounce-interval = <20>;
		};
		key-4 {
			gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_4>;
			label = "Switch-4";
			wakeup-source;
			debounce-interval = <20>;
		};
		key-5 {
			gpios = <&gpio5 22 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_5>;
			label = "Switch-4";
			wakeup-source;
			debounce-interval = <20>;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&led_pins>;
		pinctrl-names = "default";

		led0 {
			gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
			label = "LED0";
			linux,default-trigger = "heartbeat";
		};
		led1 {
			gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
			label = "LED1";
		};
		led2 {
			gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
			label = "LED2";
		};
		led3 {
			gpios = <&gpio7 3 GPIO_ACTIVE_HIGH>;
			label = "LED3";
		};
	};

	lvds {
		compatible = "panel-lvds";
		power-supply = <&reg_lcd_reset>;
		width-mm = <223>;
		height-mm = <125>;
		backlight = <&backlight_lvds>;
		data-mapping = "vesa-24";

		panel-timing {
			/* 800x480@60Hz */
			clock-frequency = <30000000>;
			hactive = <800>;
			vactive = <480>;
			hsync-len = <48>;
			hfront-porch = <40>;
			hback-porch = <40>;
			vfront-porch = <13>;
			vback-porch = <29>;
			vsync-len = <3>;
			hsync-active = <1>;
			vsync-active = <1>;
			de-active = <1>;
			pixelclk-active = <0>;
		};

		port {
			panel_in: endpoint {
				remote-endpoint = <&lvds0_out>;
			};
		};
	};

	rgb {
		/* Different LCD with compatible timings */
		compatible = "rocktech,rk070er9427";
		backlight = <&backlight_rgb>;
		enable-gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
		power-supply = <&reg_lcd>;
		port {
			rgb_panel: endpoint {
				remote-endpoint = <&du_out_rgb>;
			};
		};
	};

	reg_audio: regulator_audio {
		compatible = "regulator-fixed";
		regulator-name = "audio-1.8V";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		gpio = <&gpio_exp2 7 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_lcd: regulator-lcd {
		compatible = "regulator-fixed";
		regulator-name = "lcd_panel_pwr";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio_exp1 1 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_lcd_reset: regulator-lcd-reset {
		compatible = "regulator-fixed";
		regulator-name = "nLCD_RESET";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio5 3 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		vin-supply = <&reg_lcd>;
	};

	reg_cam0: regulator_camera {
		compatible = "regulator-fixed";
		regulator-name = "reg_cam0";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		gpio = <&gpio_exp2 2 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	reg_cam1: regulator_camera {
		compatible = "regulator-fixed";
		regulator-name = "reg_cam1";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		gpio = <&gpio_exp2 5 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		startup-delay-us = <100000>;
	};

	sound_card {
		compatible = "audio-graph-card";
		label = "rcar-sound";
		dais = <&rsnd_port0>, <&rsnd_port1>;
	};

	vccq_sdhi0: regulator-vccq-sdhi0 {
		compatible = "regulator-gpio";

		regulator-name = "SDHI0 VccQ";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;

		gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
		gpios-states = <1>;
		states = <3300000 1>, <1800000 0>;
		regulator-always-on;
	};

	/* External DU dot clocks */
	x302_clk: x302-clock {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <33000000>;
	};

	x304_clk: x304-clock {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <25000000>;
	};
};

&audio_clk_a {
	clock-frequency = <24576000>;
	assigned-clocks = <&versaclock6_bb 4>;
	assigned-clock-rates = <24576000>;
};

&audio_clk_b {
	clock-frequency = <22579200>;
};

&can0 {
	pinctrl-0 = <&can0_pins>;
	pinctrl-names = "default";
	renesas,can-clock-select = <0x0>;
	status = "okay";
};

&can1 {
	pinctrl-0 = <&can1_pins>;
	pinctrl-names = "default";
	renesas,can-clock-select = <0x0>;
	status = "okay";
};

&du {
	pinctrl-0 = <&du_pins>;
	pinctrl-names = "default";
	status = "okay";

	clocks = <&cpg CPG_MOD 724>,
		<&cpg CPG_MOD 723>,
		<&cpg CPG_MOD 722>,
		<&versaclock5 1>,
		<&x302_clk>,
		<&versaclock5 2>;
	clock-names = "du.0", "du.1", "du.2",
		"dclkin.0", "dclkin.1", "dclkin.2";
};

&du_out_rgb {
	remote-endpoint = <&rgb_panel>;
};

&ehci0 {
	dr_mode = "otg";
	status = "okay";
	clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
};

&ehci1 {
	status = "okay";
	clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
};

&hdmi0 {
	status = "okay";
	ports {
		#address-cells = <1>;
		#size-cells = <0>;
		port@0 {
			reg = <0>;
			dw_hdmi0_in: endpoint {
				remote-endpoint = <&du_out_hdmi0>;
			};
		};
		port@1 {
			reg = <1>;
			rcar_dw_hdmi0_out: endpoint {
				remote-endpoint = <&hdmi0_con>;
			};
		};
		port@2 {
			reg = <2>;
			dw_hdmi0_snd_in: endpoint {
				remote-endpoint = <&rsnd_endpoint1>;
			};
		};
	};
};

&hscif1 {
	pinctrl-0 = <&hscif1_pins>;
	pinctrl-names = "default";
	uart-has-rtscts;
	status = "okay";
};

&hsusb {
	dr_mode = "otg";
	status = "okay";
};

&i2c2 {
	status = "okay";
	clock-frequency = <100000>;
	pinctrl-0 = <&i2c2_pins>;
	pinctrl-names = "default";

	gpio_exp2: gpio@21 {
		compatible = "onnn,pca9654";
		reg = <0x21>;
		gpio-controller;
		#gpio-cells = <2>;
	};

	gpio_exp3: gpio@22 {
		compatible = "onnn,pca9654";
		reg = <0x22>;
		gpio-controller;
		#gpio-cells = <2>;
	};

	gpio_exp4: gpio@23 {
		compatible = "onnn,pca9654";
		reg = <0x23>;
		gpio-controller;
		#gpio-cells = <2>;
	};

	versaclock6_bb: clock-controller@6a {
		compatible = "idt,5p49v6965";
		reg = <0x6a>;
		#clock-cells = <1>;
		clocks = <&x304_clk>;
		clock-names = "xin";
		/* CSI0_MCLK, CSI1_MCLK, AUDIO_CLKIN, USB_HUB_MCLK_BB */
		assigned-clocks = <&versaclock6_bb 1>,
				   <&versaclock6_bb 2>,
				   <&versaclock6_bb 3>,
				   <&versaclock6_bb 4>;
		assigned-clock-rates =	<24000000>, <24000000>, <24000000>, <24576000>;
	};
};

&i2c0 {
	status = "okay";
	clock-frequency = <400000>;

	pinctrl-0 = <&i2c0_pins>;
	pinctrl-names = "default";
};

&i2c5 {
	status = "okay";
	clock-frequency = <100000>;
	pinctrl-0 = <&i2c5_pins>;
	pinctrl-names = "default";

	codec: wm8962@1a {
		compatible = "wlf,wm8962";
		reg = <0x1a>;
		DCVDD-supply = <&reg_audio>;
		DBVDD-supply = <&reg_audio>;
		AVDD-supply = <&reg_audio>;
		CPVDD-supply = <&reg_audio>;
		MICVDD-supply = <&reg_audio>;
		PLLVDD-supply = <&reg_audio>;
		SPKVDD1-supply = <&reg_audio>;
		SPKVDD2-supply = <&reg_audio>;
		gpio-cfg = <
			0x0000 /* 0:Default */
			0x0000 /* 1:Default */
			0x0000 /* 2:Default */
			0x0000 /* 3:Default */
			0x0000 /* 4:Default */
			0x0000 /* 5:Default */
		>;
		port {
			wm8962_endpoint: endpoint {
				remote-endpoint = <&rsnd_endpoint0>;
			};
		};
	};

	/* 0 - lcd_reset */
	/* 1 - lcd_pwr */
	/* 2 - lcd_select */
	/* 3 - backlight-enable */
	/* 4 - Touch_shdwn */
	/* 5 - LCD_H_pol */
	/* 6 - lcd_V_pol */
	gpio_exp1: gpio@20 {
		compatible = "onnn,pca9654";
		reg = <0x20>;
		gpio-controller;
		#gpio-cells = <2>;
	};

	touchscreen@26 {
		compatible = "ilitek,ili2117";
		reg = <0x26>;
		interrupt-parent = <&gpio5>;
		interrupts = <9 IRQ_TYPE_EDGE_RISING>;
		wakeup-source;
	};

	hd3ss3220@47 {
		compatible = "ti,hd3ss3220";
		reg = <0x47>;
		interrupt-parent = <&gpio6>;
		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;

		connector {
			compatible = "usb-c-connector";
			label = "USB-C";
			data-role = "dual";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@1 {
					reg = <1>;
					hd3ss3220_ep: endpoint {
						remote-endpoint = <&usb3_role_switch>;
					};
				};
			};
		};
	};
};

&lvds0 {
	status = "okay";

	ports {
		port@1 {
			lvds0_out: endpoint {
				remote-endpoint = <&panel_in>;
			};
		};
	};
};

&ohci0 {
	dr_mode = "otg";
	status = "okay";
};

&ohci1 {
	status = "okay";
};

&pciec0 {
	status = "okay";
};

&pciec1 {
	status = "okay";
};

&pcie_bus_clk {
	clock-frequency = <100000000>;
};

&pfc {
	can0_pins: can0 {
		groups = "can0_data_a";
		function = "can0";
	};

	can1_pins: can1 {
		groups = "can1_data";
		function = "can1";
	};

	du_pins: du {
		groups = "du_rgb888", "du_sync", "du_clk_out_1", "du_disp";
		function = "du";
	};

	i2c2_pins: i2c2 {
		groups = "i2c2_a";
		function = "i2c2";
	};

	i2c5_pins: i2c5 {
		groups = "i2c5";
		function = "i2c5";
	};

	led_pins: leds {
		/* GP_0_4 , AVS1, AVS2, GP_7_3 */
		pins = "GP_0_4", "GP_7_0", "GP_7_1", "GP_7_3";
		bias-pull-down;
	};

	pwm0_pins: pwm0 {
		groups = "pwm0";
		function = "pwm0";
	};

	pwm2_pins: pwm2 {
		groups = "pwm2_a";
		function = "pwm2_a";
	};

	sdhi0_pins: sd0 {
		groups = "sdhi0_data4", "sdhi0_ctrl";
		function = "sdhi0";
		power-source = <3300>;
	};

	sdhi0_pins_uhs: sd0_uhs {
		groups = "sdhi0_data4", "sdhi0_ctrl";
		function = "sdhi0";
		power-source = <1800>;
	};

	sound_pins: sound {
		groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a";
		function = "ssi";
	};

	sound_clk_pins: sound_clk {
		groups = "audio_clk_a_a";
		function = "audio_clk";
	};

	usb0_pins: usb0 {
		mux {
			groups = "usb0";
			function = "usb0";
		};
	};

	usb1_pins: usb1 {
		mux {
			groups = "usb1";
			function = "usb1";
		};
	};

	usb30_pins: usb30 {
		mux {
			groups = "usb30";
			function = "usb30";
		};
	};
};

&pwm0 {
	pinctrl-0 = <&pwm0_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&pwm2 {
	pinctrl-0 = <&pwm2_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&rcar_sound {
	pinctrl-0 = <&sound_pins &sound_clk_pins>;
	pinctrl-names = "default";

	/* Single DAI */
	#sound-dai-cells = <0>;

	/* audio_clkout0/1/2/3 */
	#clock-cells = <1>;
	clock-frequency = <11289600>;

	status = "okay";

	clocks = <&cpg CPG_MOD 1005>,
		 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
		 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
		 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
		 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
		 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
		 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>,
		 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>,
		 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>,
		 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>,
		 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>,
		 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
		 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
		 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
		 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>,
		 <&cpg CPG_CORE R8A774A1_CLK_S0D4>;

	ports {
		#address-cells = <1>;
		#size-cells = <0>;
		rsnd_port0: port@0 {
			reg = <0>;
			rsnd_endpoint0: endpoint {
				remote-endpoint = <&wm8962_endpoint>;

				dai-format = "i2s";
				bitclock-master = <&rsnd_endpoint0>;
				frame-master = <&rsnd_endpoint0>;

				playback = <&ssi1 &dvc1 &src1>;
				capture = <&ssi0>;
			};
		};
		rsnd_port1: port@1 {
		    reg = <0x01>;
			rsnd_endpoint1: endpoint {
				remote-endpoint = <&dw_hdmi0_snd_in>;

				dai-format = "i2s";
				bitclock-master = <&rsnd_endpoint1>;
				frame-master = <&rsnd_endpoint1>;

				playback = <&ssi2>;
			};
		};
	};
};

&rwdt {
	status = "okay";
	timeout-sec = <60>;
};

&scif0 {
	pinctrl-0 = <&scif0_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&scif5 {
	pinctrl-0 = <&scif5_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&scif_clk {
	clock-frequency = <14745600>;
};

&sdhi0 {
	pinctrl-0 = <&sdhi0_pins>;
	pinctrl-1 = <&sdhi0_pins_uhs>;
	pinctrl-names = "default", "state_uhs";
	vmmc-supply = <&reg_3p3v>;
	vqmmc-supply = <&vccq_sdhi0>;
	cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
	bus-width = <4>;
	sd-uhs-sdr50;
	sd-uhs-sdr104;
	status = "okay";
};

&ssi1 {
	shared-pin;
};

&tmu0 {
	status = "okay";
};

&tmu1 {
	status = "okay";
};

&tmu2 {
	status = "okay";
};

&tmu3 {
	status = "okay";
};

&tmu4 {
	status = "okay";
};

&usb2_phy0 {
	pinctrl-0 = <&usb0_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&usb2_phy1 {
	pinctrl-0 = <&usb1_pins>;
	pinctrl-names = "default";
	status = "okay";
};

&usb3_peri0 {
	companion = <&xhci0>;
	status = "okay";
	usb-role-switch;

	port {
		usb3_role_switch: endpoint {
			remote-endpoint = <&hd3ss3220_ep>;
		};
	};
};

&usb3_phy0 {
	status = "okay";
};

&vin0 {
	status = "okay";
};
&vin1 {
	status = "okay";
};
&vin2 {
	status = "okay";
};
&vin3 {
	status = "okay";
};
&vin4 {
	status = "okay";
};
&vin5 {
	status = "okay";
};
&vin6 {
	status = "okay";
};
&vin7 {
	status = "okay";
};

&xhci0
{
	pinctrl-0 = <&usb30_pins>;
	pinctrl-names = "default";
	status = "okay";
};
