/*
 * Copyright 2018 NXP
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include "fsl-imx8mq-som.dtsi"

/ {
	model = "Freescale i.MX8MQ Phanbell";
	compatible = "fsl,imx8mq-phanbell", "fsl,imx8mq";

	sound-rt5645 {
		compatible = "google,edgetpu-audio-card";
		model = "edgetpu-audio-card";
		audio-cpu = <&sai2>;
		audio-codec = <&rt5645>;
		google,model = "edgetpu-audio-card";
        status = "okay";
	};

	fan: gpio_fan {
		gpios = <&gpio3 13 GPIO_ACTIVE_LOW>;
		status = "okay";
	};
};


&iomuxc {
	imx8mq-phanbell {
		pinctrl_sai2: sai2grp {
			fsl,pins = <
					MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC     0xd6
					MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK      0xd6
					MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK        0xd6
					MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0    0xd6
					MX8MQ_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0    0xd6
					MX8MQ_IOMUXC_SPDIF_RX_GPIO5_IO4         0xd6
				>;
		};
	};
};

&pwm1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm1>;
	status = "okay";
};

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

&pwm3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm3>;
	status = "okay";
};

&ecspi1 {
	fsl,spi-num-chipselects = <2>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
	cs-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>,
		   <&gpio3 2 GPIO_ACTIVE_HIGH>;
	status = "okay";

	spidev@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "rohm,dh2228fv";
		spi-max-frequency = <20000000>;
		reg = <0>;
		status = "okay";
	};
	spidev@1 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "rohm,dh2228fv";
		spi-max-frequency = <20000000>;
		reg = <1>;
		status = "okay";
	};

};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-1 = <&pinctrl_gpio>;

	imx8mq-phanbell {
		pinctrl_gpio: gpio_ctrlgrp{
			fsl,pins = <

				/* 40 Pin Header */
				MX8MQ_IOMUXC_GPIO1_IO06_GPIO1_IO6		0x19
				MX8MQ_IOMUXC_GPIO1_IO07_GPIO1_IO7		0x19
				MX8MQ_IOMUXC_GPIO1_IO08_GPIO1_IO8		0x19
				MX8MQ_IOMUXC_SAI5_RXD1_GPIO3_IO22		0x19
				MX8MQ_IOMUXC_SAI5_RXD3_GPIO3_IO24		0x19
				MX8MQ_IOMUXC_SAI1_RXD0_GPIO4_IO2		0x19
				MX8MQ_IOMUXC_SAI1_TXFS_GPIO4_IO10		0x19
				MX8MQ_IOMUXC_SAI1_TXC_GPIO4_IO11		0x19
				MX8MQ_IOMUXC_SAI1_TXD0_GPIO4_IO12		0x19
				MX8MQ_IOMUXC_ECSPI2_SCLK_GPIO5_IO10		0x19
				MX8MQ_IOMUXC_ECSPI2_MISO_GPIO5_IO12		0x19
				MX8MQ_IOMUXC_ECSPI2_SS0_GPIO5_IO13		0x19
				MX8MQ_IOMUXC_SAI1_RXD2_GPIO4_IO4		0x19
				MX8MQ_IOMUXC_SAI1_RXD3_GPIO4_IO5		0x19
				MX8MQ_IOMUXC_SAI1_RXD2_GPIO4_IO4		0x19


				/* 26 Pin Header */
				MX8MQ_IOMUXC_SAI1_TXD6_GPIO4_IO18		0x19
				MX8MQ_IOMUXC_SAI1_RXD6_GPIO4_IO8		0x19
				MX8MQ_IOMUXC_SAI5_RXD2_GPIO3_IO23		0x19
				MX8MQ_IOMUXC_SAI3_RXFS_GPIO4_IO28		0x19
				MX8MQ_IOMUXC_SPDIF_TX_GPIO5_IO3			0x19
				MX8MQ_IOMUXC_SAI1_RXFS_GPIO4_IO0		0x19

				/* Misc */
				MX8MQ_IOMUXC_NAND_DATA07_GPIO3_IO13		0x19

			>;
		};

		pinctrl_pwm1: pwm1 {
			fsl,pins = <
				MX8MQ_IOMUXC_GPIO1_IO01_PWM1_OUT		0x7f
			>;
		};

		pinctrl_pwm2: pwm2 {
			fsl,pins = <
				MX8MQ_IOMUXC_GPIO1_IO13_PWM2_OUT		0x7f
			>;
		};

		pinctrl_pwm3: pwm3 {
			fsl,pins = <
				MX8MQ_IOMUXC_GPIO1_IO14_PWM3_OUT		0x7f
			>;
		};
		pinctrl_ecspi1: ecspi1grp {
			fsl,pins = <
				MX8MQ_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK		0x82
				MX8MQ_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI		0x82
				MX8MQ_IOMUXC_ECSPI1_MISO_ECSPI1_MISO		0x82
			>;
		};
		pinctrl_ecspi1_cs: ecspi1_cs_grp {
			fsl,pins = <
				MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9		0x82
				MX8MQ_IOMUXC_NAND_CE1_B_GPIO3_IO2		0x82
			>;
		};
		pinctrl_usb5744: usb5744 {
			fsl,pins = <
				MX8MQ_IOMUXC_SAI1_RXC_GPIO4_IO1			0x19
			>;
		};

		pinctrl_i2c_mux: pinctrl_mux_grp {
			fsl,pins = <
				MX8MQ_IOMUXC_NAND_CLE_GPIO3_IO5		0x18
			>;
		};
	};
};

&hdmi {
	status = "okay";
};

&hdmi_cec {
	status = "okay";
};

&dcss {
	disp-dev = "hdmi_disp";
	status = "okay";
};

&sai2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sai2>;
	assigned-clocks =
		<&clk IMX8MQ_CLK_SAI2_SRC>,
		<&clk IMX8MQ_CLK_SAI2_DIV>;
	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
	assigned-clock-rates = <0>, <24576000>;
	status = "okay";

	clocks = <&clk IMX8MQ_CLK_SAI2_IPG>, <&clk IMX8MQ_CLK_DUMMY>,
		<&clk IMX8MQ_CLK_SAI2_ROOT>, <&clk IMX8MQ_CLK_DUMMY>,
		<&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_AUDIO_PLL1_OUT>,
		<&clk IMX8MQ_AUDIO_PLL2_OUT>;
	clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
};

&i2c2 {
	status = "okay";

	ov5645_mipi: ov5645_mipi@3c {
		compatible = "ovti,ov5645_mipi";
		reg = <0x3c>;
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_csi1>;
		clocks = <&clk IMX8MQ_CLK_DUMMY>;
		clock-names = "csi_mclk";
		csi_id = <0>;
		pwn-gpios = <&gpio3 8 1>;
		rst-gpios = <&gpio1 12 0>;
		mclk = <20000000>;
		mclk_source = <0>;
		ae_target = <52>;
		port {
			ov5645_mipi1_ep: endpoint {
				remote-endpoint = <&mipi1_sensor_ep>;
			};
		};
	};

	led_driver: ktd2027@30 {
		compatible = "kinetic,ktd2026";
		reg = <0x30>;
		status = "okay";
	};
};

&usb_dwc3_0 {
	extcon = <&typec_ptn5150>;
};

&i2c3 {
	status = "okay";

	rt5645: rt5645@1a {
		compatible = "realtek,rt5645";
		reg = <0x1a>;
		clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
		clock-names = "mclk1";
		status = "okay";
		realtek,dmic1-data-pin = <2>; // GPIO5
		realtek,jd-mode = <0>;
		realtek,jd-invert;
		realtek,jd-low-volt-enable;
		interrupt-parent = <&gpio5>;
		interrupts = <4 IRQ_TYPE_EDGE_BOTH>;
		hp-detect-gpios = <&gpio5 4 GPIO_ACTIVE_HIGH>;
	};

	typec_ptn5150: ptn5150@3d {
		compatible = "nxp,ptn5150a";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_typec>;
		reg = <0x3d>;
		interrupt-parent = <&gpio3>;
		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
	};

	usb3_hub: usb5744@2d {
		compatible = "microchip,usb5744";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usb5744>;
		reg = <0x2d>;
		reset-gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;
	};

	power_monitor_m2_a: power_monitor_m2_a@40 {
		compatible = "ti,ina233";
		reg = <0x40>;
		shunt-resistor = <20000>;
	};

	power_monitor_m2_b: power_monitor_m2_b@41 {
		compatible = "ti,ina233";
		reg = <0x41>;
		shunt-resistor = <20000>;
	};

	power_monitor_m2_c: power_monitor_m2_c@4e {
		compatible = "ti,ina233";
		reg = <0x4e>;
		shunt-resistor = <20000>;
	};

	power_monitor_m2_d: power_monitor_m2_d@45 {
		compatible = "ti,ina233";
		reg = <0x45>;
		shunt-resistor = <20000>;
	};

	power_monitor_som: power_monitor_som@48 {
		compatible = "ti,ina233";
		reg = <0x48>;
		shunt-resistor = <20000>;
	};

	power_monitor_3P3: power_monitor_3P3@4c {
		compatible = "ti,ina233";
		reg = <0x4c>;
		shunt-resistor = <20000>;
	};

	power_monitor_1P8: power_monitor_1P8@4d {
		compatible = "ti,ina233";
		reg = <0x4d>;
		shunt-resistor = <20000>;
	};

	power_monitor_5P0: power_monitor_5P04f {
		compatible = "ti,ina233";
		reg = <0x4f>;
		shunt-resistor = <20000>;
	};

	i2c-mux@70 {
		compatible = "nxp,pca9544";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x70>;
		pinctrl-0 = <&pinctrl_i2c_mux>;
		pinctrl-names = "default";

		interrupt-parent = <&gpio3>;
		interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};
};

&gpio3 {
	i2c-mux {
		gpio-hog;
		gpios = <5 GPIO_ACTIVE_LOW>;
		input;
	};
};

&csi1_bridge {
	fsl,mipi-mode;
	fsl,two-8bit-sensor-mode;
	status = "okay";

	port {
		csi1_ep: endpoint {
			remote-endpoint = <&csi1_mipi_ep>;
		};
	};
};

&mipi_csi_1 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";
	port {
		mipi1_sensor_ep: endpoint1 {
			remote-endpoint = <&ov5645_mipi1_ep>;
			data-lanes = <1 2>;
		};

		csi1_mipi_ep: endpoint2 {
			remote-endpoint = <&csi1_ep>;
		};
	};
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog>;

	imx8mq-phanbell {
		pinctrl_csi1: csi1grp {
			fsl,pins = <
				MX8MQ_IOMUXC_NAND_DATA02_GPIO3_IO8			0x19 /* PWDN */
				MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12			0x19 /* RESETB */
				/* vsync pin mux? can't find in schematic */
			>;
		};
	};
};
