Commit 273a3dc1 authored by Bryan O'Donoghue's avatar Bryan O'Donoghue Committed by Bjorn Andersson
Browse files

arm64: dts: qcom: Add Square apq8039-t2 board



The apq8039-t2 is an apq8039 based board paired with a wcn3680b WiFi
chipset.

Co-developed-by: default avatarShawn Guo <shawn.guo@linaro.org>
Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
Co-developed-by: default avatarJun Nie <jun.nie@linaro.org>
Signed-off-by: default avatarJun Nie <jun.nie@linaro.org>
Co-developed-by: default avatarBenjamin Li <benl@squareup.com>
Signed-off-by: default avatarBenjamin Li <benl@squareup.com>
Co-developed-by: default avatarJames Willcox <jwillcox@squareup.com>
Signed-off-by: default avatarJames Willcox <jwillcox@squareup.com>
Co-developed-by: default avatarLeo Yan <leo.yan@linaro.org>
Signed-off-by: default avatarLeo Yan <leo.yan@linaro.org>
Co-developed-by: default avatarJoseph Gates <jgates@squareup.com>
Signed-off-by: default avatarJoseph Gates <jgates@squareup.com>
Co-developed-by: default avatarMax Chen <mchen@squareup.com>
Signed-off-by: default avatarMax Chen <mchen@squareup.com>
Co-developed-by: default avatarZac Crosby <zac@squareup.com>
Signed-off-by: default avatarZac Crosby <zac@squareup.com>
Reviewed-by: default avatarKonrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230407194905.611461-5-bryan.odonoghue@linaro.org
parent 1e6dfe47
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_QCOM)	+= apq8016-sbc.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= apq8039-t2.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= apq8094-sony-xperia-kitakami-karin_windy.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= apq8096-db820c.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= apq8096-ifc6640.dtb
+492 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2015, The Linux Foundation. All rights reserved.
 * Copyright (c) 2020-2023, Linaro Ltd.
 *
 */

/dts-v1/;

#include "msm8939.dtsi"
#include "msm8939-pm8916.dtsi"
#include <dt-bindings/arm/qcom,ids.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/sound/apq8016-lpass.h>

/ {
	model = "Square, Inc. T2 Devkit";
	compatible = "square,apq8039-t2", "qcom,msm8939";

	qcom,board-id = <0x53 0x54>;
	qcom,msm-id = <QCOM_ID_APQ8039 0x30000>;

	aliases {
		mmc0 = &sdhc_1;
		mmc1 = &sdhc_2;
		serial0 = &blsp1_uart1;
		serial1 = &blsp1_uart2;
	};

	bl: backlight {
		compatible = "gpio-backlight";
		pinctrl-0 = <&pinctrl_backlight>;
		pinctrl-names = "default";
		gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
	};

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

	vreg_lcd_avdd_reg: lcd-avdd-regulator {
		compatible = "regulator-fixed";
		regulator-name = "lcd_avdd";
		regulator-min-microvolt = <5600000>;
		regulator-max-microvolt = <5600000>;
		pinctrl-0 = <&pinctrl_lcd_avdd_reg>;
		pinctrl-names = "default";
		gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
		startup-delay-us = <300>;
		enable-active-high;
	};

	vreg_lcd_avee_reg: lcd-avee-regulator {
		compatible = "regulator-fixed";
		regulator-name = "lcd_avee";
		regulator-min-microvolt = <5600000>;
		regulator-max-microvolt = <5600000>;
		pinctrl-0 = <&pinctrl_lcd_avee_reg>;
		pinctrl-names = "default";
		gpio = <&tlmm 87 GPIO_ACTIVE_HIGH>;
		startup-delay-us = <300>;
		enable-active-high;
	};

	vreg_lcd_iovcc_reg: lcd-iovcc-regulator {
		compatible = "regulator-fixed";
		regulator-name = "lcd_iovcc";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		pinctrl-0 = <&pinctrl_lcd_iovcc_reg>;
		pinctrl-names = "default";
		gpio = <&tlmm 9 GPIO_ACTIVE_HIGH>;
		startup-delay-us = <300>;
		enable-active-high;
	};
};

&blsp_i2c1 {
	status = "okay";
};

&blsp_i2c2 {
	status = "okay";
};

&blsp_i2c3 {
	status = "okay";

	typec_pd: usb-pd@38 {
		compatible = "ti,tps6598x";
		reg = <0x38>;

		interrupt-parent = <&tlmm>;
		interrupts = <107 IRQ_TYPE_LEVEL_LOW>;
		interrupt-names = "irq";

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

		typec_con: connector {
			compatible = "usb-c-connector";
			label = "USB-C";

			port {
				typec_ep: endpoint {
					remote-endpoint = <&otg_ep>;
				};
			};
		};
	};
};

&blsp_i2c5 {
	status = "okay";
};

&blsp1_uart1 {
	status = "okay";
};

&blsp1_uart1_default {
	pins = "gpio0", "gpio1";
};

&blsp1_uart1_sleep {
	pins = "gpio0", "gpio1";
};

&blsp1_uart2 {
	status = "okay";
};

&lpass {
	status = "okay";
};

&mdss {
	status = "okay";
};

&pm8916_gpios {
	gpio-line-names =
		"PM_GPIO1",     /* WIFI_GPIO1_PRE */
		"PM_GPIO2",     /* WIFI_GPIO2_PRE */
		"PM_GPIO3",
		"PM_GPIO4";
};

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

	pm8916_s3: s3 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1300000>;
	};

	pm8916_s4: s4 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2100000>;
	};

	/* l1 is fixed to 1225000, but not connected in schematic */

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

	pm8916_l4: l4 {
		regulator-min-microvolt = <2050000>;
		regulator-max-microvolt = <2050000>;
	};

	pm8916_l5: l5 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

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

	pm8916_l7: l7 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	pm8916_l8: l8 {
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2900000>;
	};

	pm8916_l9: l9 {
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	pm8916_l10: l10 {
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	pm8916_l11: l11 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2950000>;
	};

	pm8916_l12: l12 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <2950000>;
	};

	pm8916_l13: l13 {
		regulator-min-microvolt = <3075000>;
		regulator-max-microvolt = <3075000>;
	};

	pm8916_l14: l14 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	pm8916_l15: l15 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	pm8916_l16: l16 {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <3300000>;
	};

	pm8916_l17: l17 {
		regulator-min-microvolt = <2850000>;
		regulator-max-microvolt = <2850000>;
	};

	pm8916_l18: l18 {
		regulator-min-microvolt = <2700000>;
		regulator-max-microvolt = <2700000>;
	};
};

&sdhc_1 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc1_default_state>;
	pinctrl-1 = <&sdc1_sleep_state>;
	status = "okay";
};

&sound {
	model = "apq8039-square-sndcard";
	audio-routing = "AMIC2", "MIC BIAS Internal2";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&cdc_pdm_lines_default>;
	pinctrl-1 = <&cdc_pdm_lines_sleep>;

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

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

/*
 * Line names are taken from the schematic of T2, Ver X03.
 * July 14, 2018. Page 4 in particular.
 */
&tlmm {
	gpio-line-names =
		"APQ_UART1_TX",		/* GPIO_0 */
		"APQ_UART1_RX",
		"APQ_I2C1_SDA",
		"APQ_I2C1_SCL",
		"APQ_UART2_TX_1V8",
		"APQ_UART2_RX_1V8",
		"APQ_I2C2_SDA",
		"APQ_I2C2_SCL",
		"NC",
		"APQ_LCD_IOVCC_EN",
		"APQ_I2C3_SDA",		/* GPIO_10 */
		"APQ_I2C3_SCL",
		"TOUCH_RST_1V8_L",
		"NC",
		"APQ_I2C4_SDA",
		"APQ_I2C4_SCL",
		"APQ_ID5",
		"USB_DISCONNECT",
		"APQ_I2C5_SDA",
		"APQ_I2C5_SCL",
		"APQ_USBC_SPI_MOSI",	/* GPIO_20 */
		"APQ_USBC_SPI_MISO",
		"APQ_USBC_SPI_SS_L",
		"APQ_USBC_SPI_CLK",
		"APQ_LCD_TE0",
		"APQ_LCD_RST_L",
		"NC",
		"NC",
		"ACCELEROMETER_INT1",
		"APQ_CAM_I2C0_SDA",
		"APQ_CAM_I2C0_SCL",	/* GPIO_30 */
		"ACCELEROMETER_INT2",
		"NC",
		"NC",
		"NC",
		"APQ_K21_RST_1V8_L",
		"NC",
		"APQ_EDL_1V8",
		"TP145",
		"BT_SSBI",
		"NC",			/* GPIO_40 */
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"BT_CTRL",
		"BT_DAT",
		"PWR_GPIO_IN",
		"PWR_GPIO_OUT",		/* GPIO_50 */
		"CARD_DET_MLB_L",
		"HALL_SENSOR",
		"TP63",
		"TP64",
		"TP65",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",			/* GPIO_60 */
		"NC",
		"APQ_K21_GPIO0_1V8",
		"CDC_PDM_CLK",
		"CDC_PDM_SYNC",
		"CDC_PDM_TX",
		"CDC_PDM_RX0",
		"CDC_PDM_RX1",
		"CDC_PDM_RX2",
		"APQ_K21_GPIO1_1V8",
		"NC",			/* GPIO_70 */
		"APQ_HUB_SEL_1V8",
		"APQ_K21_GPIO2_1V8",
		"APQ_K21_GPIO3_1V8",
		"APQ_ID0",
		"APQ_ID1",
		"APQ_ID2",
		"APQ_ID3",
		"APQ_ID4",
		"APQ_HUB_SUSP_IND",
		"BOOT_CONFIG_0",	/* GPIO_80 */
		"BOOT_CONFIG_1",
		"BOOT_CONFIG_2",
		"BOOT_CONFIG_3",
		"NC",
		"NC",
		"APQ_LCD_AVDD_EN",
		"APQ_LCD_AVEE_EN",
		"TP70",
		"NC",
		"APQ_DEBUG0",		/* GPIO_90 */
		"APQ_DEBUG1",
		"APQ_DEBUG2",
		"APQ_DEBUG3",
		"TP165",
		"NC",
		"APQ_LNA_PWR_EN",
		"NC",
		"APQ_LCD_BL_EN",
		"NC",
		"APQ_LCD_ID0",		/* GPIO_100 */
		"APQ_LCD_ID1",
		"USBC_GPIO5_1V8",
		"NC",
		"NC",
		"NC",
		"APQ_HUB_RST_1V8_L",
		"USBC_I2C_IRQ_1V8_L",
		"SPE_PWR_EN",
		"NC",
		"APQ_USB_ID",		/* GPIO_110 */
		"APQ_EXT_BUCK_VSEL",
		"APQ_USB_ID_OUT",
		"NC",
		"PRNT_RST_L",
		"APQ_CRQ_I2C_RDY_1V8",
		"TYPEC_RST_1V8_H",
		"CHG_BACKPWR_EN",
		"CHG_PROCHOT_L",
		"NC",
		"USBC_GPIO7_1V8",	/* GPIO_120 */
		"NC";

	pinctrl_backlight: backlight-state {
		pins = "gpio98";
		function = "gpio";
	};

	pinctrl_lcd_avdd_reg: lcd-avdd-reg-state {
		pins = "gpio86";
		function = "gpio";
	};

	pinctrl_lcd_avee_reg: lcd-avee-reg-state {
		pins = "gpio87";
		function = "gpio";
	};

	pinctrl_lcd_iovcc_reg: lcd-iovcc-reg-state {
		pins = "gpio9";
		function = "gpio";
	};

	pinctrl_lcd_rst: lcd-rst-state {
		pins = "gpio25";
		function = "gpio";
	};

	pinctrl_otg_default: otg-default-state {
		function = "gpio";
		pins = "gpio17";
		output-high;
	};

	pinctrl_otg_device: otg-device-state {
		function = "gpio";
		pins = "gpio17";
		output-low;
	};

	pinctrl_otg_host: otg-host-state {
		function = "gpio";
		pins = "gpio17";
		output-low;
	};

	typec_irq: typec-irq-state {
		function = "gpio";
		pins = "gpio107";
		bias-pull-up;
		input-enable;
	};
};

&usb {
	pinctrl-names = "default", "host", "device";
	pinctrl-0 = <&pinctrl_otg_default>;
	pinctrl-1 = <&pinctrl_otg_host>;
	pinctrl-2 = <&pinctrl_otg_device>;
	pin-switch-delay-us = <100000>;
	usb-role-switch;
	status = "okay";

	port {
		otg_ep: endpoint {
			remote-endpoint = <&typec_ep>;
		};
	};
};

&wcd_codec {
	qcom,hphl-jack-type-normally-open;
	qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
	qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
	status = "okay";
};

&wcnss {
	status = "okay";
};

&wcnss_iris {
	compatible = "qcom,wcn3680";
};