// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2015, The Linux Foundation. All rights reserved.
 */

/dts-v1/;

#include "msm8916-pm8916.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
#include <dt-bindings/sound/apq8016-lpass.h>

/ {
	model = "Qualcomm Technologies, Inc. APQ 8016 SBC";
	compatible = "qcom,apq8016-sbc", "qcom,apq8016";

	aliases {
		serial0 = &blsp1_uart2;
		serial1 = &blsp1_uart1;
		usid0 = &pm8916_0;
		i2c0	= &blsp_i2c2;
		i2c1	= &blsp_i2c6;
		i2c3	= &blsp_i2c4;
		spi0	= &blsp_spi5;
		spi1	= &blsp_spi3;
	};

	chosen {
		stdout-path = "serial0";
	};

	camera_vdddo_1v8: camera-vdddo-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "camera_vdddo";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
	};

	camera_vdda_2v8: camera-vdda-2v8 {
		compatible = "regulator-fixed";
		regulator-name = "camera_vdda";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		regulator-always-on;
	};

	camera_vddd_1v5: camera-vddd-1v5 {
		compatible = "regulator-fixed";
		regulator-name = "camera_vddd";
		regulator-min-microvolt = <1500000>;
		regulator-max-microvolt = <1500000>;
		regulator-always-on;
	};

	reserved-memory {
		ramoops@bff00000 {
			compatible = "ramoops";
			reg = <0x0 0xbff00000 0x0 0x100000>;

			record-size = <0x20000>;
			console-size = <0x20000>;
			ftrace-size = <0x20000>;
		};
	};

	usb2513 {
		compatible = "smsc,usb3503";
		reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>;
		initial-mode = <1>;
	};

	usb_id: usb-id {
		compatible = "linux,extcon-usb-gpio";
		id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb_id_default>;
	};

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

		port {
			hdmi_con: endpoint {
				remote-endpoint = <&adv7533_out>;
			};
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		autorepeat;

		pinctrl-names = "default";
		pinctrl-0 = <&msm_key_volp_n_default>;

		button@0 {
			label = "Volume Up";
			linux,code = <KEY_VOLUMEUP>;
			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
		};
	};

	leds {
		pinctrl-names = "default";
		pinctrl-0 = <&msmgpio_leds>,
			    <&pm8916_gpios_leds>,
			    <&pm8916_mpps_leds>;

		compatible = "gpio-leds";

		led@1 {
			label = "apq8016-sbc:green:user1";
			gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
			default-state = "off";
		};

		led@2 {
			label = "apq8016-sbc:green:user2";
			gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "mmc0";
			default-state = "off";
		};

		led@3 {
			label = "apq8016-sbc:green:user3";
			gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "mmc1";
			default-state = "off";
		};

		led@4 {
			label = "apq8016-sbc:green:user4";
			gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "none";
			panic-indicator;
			default-state = "off";
		};

		led@5 {
			label = "apq8016-sbc:yellow:wlan";
			gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "phy0tx";
			default-state = "off";
		};

		led@6 {
			label = "apq8016-sbc:blue:bt";
			gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "bluetooth-power";
			default-state = "off";
		};
	};
};

&blsp_dma {
	status = "okay";
};

&blsp_i2c2 {
	/* On Low speed expansion */
	status = "okay";
	label = "LS-I2C0";
};

&blsp_i2c4 {
	/* On High speed expansion */
	status = "okay";
	label = "HS-I2C2";

	adv_bridge: bridge@39 {
		status = "okay";

		compatible = "adi,adv7533";
		reg = <0x39>;

		interrupt-parent = <&msmgpio>;
		interrupts = <31 IRQ_TYPE_EDGE_FALLING>;

		adi,dsi-lanes = <4>;
		clocks = <&rpmcc RPM_SMD_BB_CLK2>;
		clock-names = "cec";

		pd-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;

		avdd-supply = <&pm8916_l6>;
		v1p2-supply = <&pm8916_l6>;
		v3p3-supply = <&pm8916_l17>;

		pinctrl-names = "default","sleep";
		pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
		pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
		#sound-dai-cells = <1>;

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

			port@0 {
				reg = <0>;
				adv7533_in: endpoint {
					remote-endpoint = <&dsi0_out>;
				};
			};

			port@1 {
				reg = <1>;
				adv7533_out: endpoint {
					remote-endpoint = <&hdmi_con>;
				};
			};
		};
	};
};

&blsp_i2c6 {
	/* On Low speed expansion */
	status = "okay";
	label = "LS-I2C1";
};

&blsp_spi3 {
	/* On High speed expansion */
	status = "okay";
	label = "HS-SPI1";
};

&blsp_spi5 {
	/* On Low speed expansion */
	status = "okay";
	label = "LS-SPI0";
};

&blsp1_uart1 {
	status = "okay";
	label = "LS-UART0";
};

&blsp1_uart2 {
	status = "okay";
	label = "LS-UART1";
};

&camss {
	status = "okay";
	ports {
		port@0 {
			reg = <0>;
			csiphy0_ep: endpoint {
				clock-lanes = <1>;
				data-lanes = <0 2>;
				remote-endpoint = <&ov5640_ep>;
				status = "okay";
			};
		};
	};
};

&cci {
	status = "okay";
};

&cci_i2c0 {
	camera_rear@3b {
		compatible = "ovti,ov5640";
		reg = <0x3b>;

		enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&camera_rear_default>;

		clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
		clock-names = "xclk";
		clock-frequency = <23880000>;

		vdddo-supply = <&camera_vdddo_1v8>;
		vdda-supply = <&camera_vdda_2v8>;
		vddd-supply = <&camera_vddd_1v5>;

		/* No camera mezzanine by default */
		status = "disabled";

		port {
			ov5640_ep: endpoint {
				clock-lanes = <1>;
				data-lanes = <0 2>;
				remote-endpoint = <&csiphy0_ep>;
			};
		};
	};
};

&dsi0_out {
	data-lanes = <0 1 2 3>;
	remote-endpoint = <&adv7533_in>;
};

&lpass {
	status = "okay";
};

&mdss {
	status = "okay";
};

&mpss {
	status = "okay";

	firmware-name = "qcom/apq8016/mba.mbn", "qcom/apq8016/modem.mbn";
};

&pm8916_resin {
	status = "okay";
	linux,code = <KEY_VOLUMEDOWN>;
};

&pronto {
	status = "okay";

	firmware-name = "qcom/apq8016/wcnss.mbn";
};

&sdhc_1 {
	status = "okay";

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
};

&sdhc_2 {
	status = "okay";

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;

	cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
};

&sound {
	status = "okay";

	pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
	pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
	pinctrl-names = "default", "sleep";
	qcom,model = "DB410c";
	qcom,audio-routing =
		"AMIC2", "MIC BIAS Internal2",
		"AMIC3", "MIC BIAS External1";

	external-dai-link@0 {
		link-name = "ADV7533";
		cpu {
			sound-dai = <&lpass MI2S_QUATERNARY>;
		};
		codec {
			sound-dai = <&adv_bridge 0>;
		};
	};

	internal-codec-playback-dai-link@0 {
		link-name = "WCD";
		cpu {
			sound-dai = <&lpass MI2S_PRIMARY>;
		};
		codec {
			sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
		};
	};

	internal-codec-capture-dai-link@0 {
		link-name = "WCD-Capture";
		cpu {
			sound-dai = <&lpass MI2S_TERTIARY>;
		};
		codec {
			sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
		};
	};
};

&usb {
	status = "okay";
	extcon = <&usb_id>, <&usb_id>;

	pinctrl-names = "default", "device";
	pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
	pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
};

&usb_hs_phy {
	extcon = <&usb_id>;
};

&wcd_codec {
	clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
	clock-names = "mclk";
	qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
	qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
};

&wcnss_ctrl {
	firmware-name = "qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin";
};

/* Enable CoreSight */
&cti0 { status = "okay"; };
&cti1 { status = "okay"; };
&cti12 { status = "okay"; };
&cti13 { status = "okay"; };
&cti14 { status = "okay"; };
&cti15 { status = "okay"; };
&debug0 { status = "okay"; };
&debug1 { status = "okay"; };
&debug2 { status = "okay"; };
&debug3 { status = "okay"; };
&etf { status = "okay"; };
&etm0 { status = "okay"; };
&etm1 { status = "okay"; };
&etm2 { status = "okay"; };
&etm3 { status = "okay"; };
&etr { status = "okay"; };
&funnel0 { status = "okay"; };
&funnel1 { status = "okay"; };
&replicator { status = "okay"; };
&stm { status = "okay"; };
&tpiu { status = "okay"; };

&smd_rpm_regulators {
	vdd_l1_l2_l3-supply = <&pm8916_s3>;
	vdd_l4_l5_l6-supply = <&pm8916_s4>;
	vdd_l7-supply = <&pm8916_s4>;

	s3 {
		regulator-min-microvolt = <375000>;
		regulator-max-microvolt = <1562000>;
	};

	s4 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

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

	l1 {
		regulator-min-microvolt = <375000>;
		regulator-max-microvolt = <1525000>;
	};

	l2 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
	};

	l4 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};

	l5 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};

	l6 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	l7 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};

	l8 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};

	l9 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};

	l10 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};

	l11 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
		regulator-allow-set-load;
		regulator-system-load = <200000>;
	};

	l12 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};

	l13 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};

	l14 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};

	/**
	 * 1.8v required on LS expansion
	 * for mezzanine boards
	 */
	l15 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
		regulator-always-on;
	};

	l16 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};

	l17 {
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	l18 {
		regulator-min-microvolt = <1750000>;
		regulator-max-microvolt = <3337000>;
	};
};

/*
 * 2mA drive strength is not enough when connecting multiple
 * I2C devices with different pull up resistors.
 */
&i2c2_default {
	drive-strength = <16>;
};

&i2c4_default {
	drive-strength = <16>;
};

&i2c6_default {
	drive-strength = <16>;
};

/*
 * GPIO name legend: proper name = the GPIO line is used as GPIO
 *         NC = not connected (pin out but not routed from the chip to
 *              anything the board)
 *         "[PER]" = pin is muxed for [peripheral] (not GPIO)
 *         LSEC = Low Speed External Connector
 *         HSEC = High Speed External Connector
 *
 * Line names are taken from the schematic "DragonBoard410c"
 * dated monday, august 31, 2015. Page 5 in particular.
 *
 * For the lines routed to the external connectors the
 * lines are named after the 96Boards CE Specification 1.0,
 * Appendix "Expansion Connector Signal Description".
 *
 * When the 96Board naming of a line and the schematic name of
 * the same line are in conflict, the 96Board specification
 * takes precedence, which means that the external UART on the
 * LSEC is named UART0 while the schematic and SoC names this
 * UART3. This is only for the informational lines i.e. "[FOO]",
 * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
 * ones actually used for GPIO.
 */

&msmgpio {
	gpio-line-names =
		"[UART0_TX]", /* GPIO_0, LSEC pin 5 */
		"[UART0_RX]", /* GPIO_1, LSEC pin 7 */
		"[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */
		"[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */
		"[UART1_TX]", /* GPIO_4, LSEC pin 11 */
		"[UART1_RX]", /* GPIO_5, LSEC pin 13 */
		"[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */
		"[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */
		"[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */
		"[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */
		"[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */
		"[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */
		"GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */
		"GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */
		"[I2C3_SDA]", /* HSEC pin 38 */
		"[I2C3_SCL]", /* HSEC pin 36 */
		"[SPI0_MOSI]", /* LSEC pin 14 */
		"[SPI0_MISO]", /* LSEC pin 10 */
		"[SPI0_CS_N]", /* LSEC pin 12 */
		"[SPI0_CLK]", /* LSEC pin 8 */
		"HDMI_HPD_N", /* GPIO 20 */
		"USR_LED_1_CTRL",
		"[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */
		"[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */
		"GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */
		"GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */
		"[CSI0_MCLK]", /* HSEC pin 15 */
		"[CSI1_MCLK]", /* HSEC pin 17 */
		"GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */
		"[I2C2_SDA]", /* HSEC pin 34 */
		"[I2C2_SCL]", /* HSEC pin 32 */
		"DSI2HDMI_INT_N",
		"DSI_SW_SEL_APQ",
		"GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */
		"GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */
		"GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */
		"GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */
		"FORCED_USB_BOOT",
		"SD_CARD_DET_N",
		"[WCSS_BT_SSBI]",
		"[WCSS_WLAN_DATA_2]", /* GPIO 40 */
		"[WCSS_WLAN_DATA_1]",
		"[WCSS_WLAN_DATA_0]",
		"[WCSS_WLAN_SET]",
		"[WCSS_WLAN_CLK]",
		"[WCSS_FM_SSBI]",
		"[WCSS_FM_SDI]",
		"[WCSS_BT_DAT_CTL]",
		"[WCSS_BT_DAT_STB]",
		"NC",
		"NC", /* GPIO 50 */
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC", /* GPIO 60 */
		"NC",
		"NC",
		"[CDC_PDM0_CLK]",
		"[CDC_PDM0_SYNC]",
		"[CDC_PDM0_TX0]",
		"[CDC_PDM0_RX0]",
		"[CDC_PDM0_RX1]",
		"[CDC_PDM0_RX2]",
		"GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */
		"NC", /* GPIO 70 */
		"NC",
		"NC",
		"NC",
		"NC", /* GPIO 74 */
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"BOOT_CONFIG_0", /* GPIO 80 */
		"BOOT_CONFIG_1",
		"BOOT_CONFIG_2",
		"BOOT_CONFIG_3",
		"NC",
		"NC",
		"BOOT_CONFIG_5",
		"NC",
		"NC",
		"NC",
		"NC", /* GPIO 90 */
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC", /* GPIO 100 */
		"NC",
		"NC",
		"NC",
		"SSBI_GPS",
		"NC",
		"NC",
		"KEY_VOLP_N",
		"NC",
		"NC",
		"[LS_EXP_MI2S_WS]", /* GPIO 110 */
		"NC",
		"NC",
		"[LS_EXP_MI2S_SCK]",
		"[LS_EXP_MI2S_DATA0]",
		"GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */
		"NC",
		"[DSI2HDMI_MI2S_WS]",
		"[DSI2HDMI_MI2S_SCK]",
		"[DSI2HDMI_MI2S_DATA0]",
		"USR_LED_2_CTRL", /* GPIO 120 */
		"SB_HS_ID";

	msmgpio_leds: msmgpio-leds {
		pins = "gpio21", "gpio120";
		function = "gpio";

		output-low;
	};

	usb_id_default: usb-id-default {
		pins = "gpio121";
		function = "gpio";

		drive-strength = <8>;
		input-enable;
		bias-pull-up;
	};

	adv7533_int_active: adv533-int-active {
		pins = "gpio31";
		function = "gpio";

		drive-strength = <16>;
		bias-disable;
	};

	adv7533_int_suspend: adv7533-int-suspend {
		pins = "gpio31";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	adv7533_switch_active: adv7533-switch-active {
		pins = "gpio32";
		function = "gpio";

		drive-strength = <16>;
		bias-disable;
	};

	adv7533_switch_suspend: adv7533-switch-suspend {
		pins = "gpio32";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
	};

	msm_key_volp_n_default: msm-key-volp-n-default {
		pins = "gpio107";
		function = "gpio";

		drive-strength = <8>;
		input-enable;
		bias-pull-up;
	};
};

&pm8916_gpios {
	gpio-line-names =
		"USR_LED_3_CTRL",
		"USR_LED_4_CTRL",
		"USB_HUB_RESET_N_PM",
		"USB_SW_SEL_PM";

	usb_hub_reset_pm: usb-hub-reset-pm {
		pins = "gpio3";
		function = PMIC_GPIO_FUNC_NORMAL;

		input-disable;
		output-high;
	};

	usb_hub_reset_pm_device: usb-hub-reset-pm-device {
		pins = "gpio3";
		function = PMIC_GPIO_FUNC_NORMAL;

		output-low;
	};

	usb_sw_sel_pm: usb-sw-sel-pm {
		pins = "gpio4";
		function = PMIC_GPIO_FUNC_NORMAL;

		power-source = <PM8916_GPIO_VPH>;
		input-disable;
		output-high;
	};

	usb_sw_sel_pm_device: usb-sw-sel-pm-device {
		pins = "gpio4";
		function = PMIC_GPIO_FUNC_NORMAL;

		power-source = <PM8916_GPIO_VPH>;
		input-disable;
		output-low;
	};

	pm8916_gpios_leds: pm8916-gpios-leds {
		pins = "gpio1", "gpio2";
		function = PMIC_GPIO_FUNC_NORMAL;

		output-low;
	};
};

&pm8916_mpps {
	gpio-line-names =
		"VDD_PX_BIAS",
		"WLAN_LED_CTRL",
		"BT_LED_CTRL",
		"GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */

	pinctrl-names = "default";
	pinctrl-0 = <&ls_exp_gpio_f>;

	ls_exp_gpio_f: pm8916-mpp4-state {
		pins = "mpp4";
		function = "digital";

		output-low;
		power-source = <PM8916_MPP_L5>;	// 1.8V
	};

	pm8916_mpps_leds: pm8916-mpps-state {
		pins = "mpp2", "mpp3";
		function = "digital";

		output-low;
	};
};
