Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5c112ff authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ARM: dts: msm: Add device tree changes for apq8009 target"

parents 93905cbc 7ac464b1
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
Qualcomm Technologies Inc Blackghost(BG) PIL driver:

Blackghost(BG) PIL driver provide interface to load and boot Blackghost(BG)
SOC. Blackghost(BG) SOC is an external SOC which communicate to MSM via
SPI. The PIL driver loads firmware into memory and invoke secure app via
qseecom to transfer and handshake the boot process. Once Blackghost(BG) SOC
is booted it raises ready interrupt which is handled by BG PIL driver, and
this event is informed to other MSM drivers, other remote subsystem via
notifier framework. The PIL driver also handles interrupt for the BG SOC
crash upon arrival of which it reset and initiates ramdump collection for BG
SOC.

Required properties:
- compatible:			Must be "qcom,PIL-blackghost"
- qcom,firmware-name:		Base name of the firmware image.
- qcom,bg2ap-status-gpio:	GPIO used by the blackghost to indicate status to the apps.
- qcom,bg2ap-errfatal-gpio:	GPIO used by the blackghost to indicate software error to the apps.
- qcom,ap2bg-status-gpio:	GPIO used by the apps to indicate its status to blackghost.
- qcom,ap2bg-errfatal-gpio:	GPIO used by the apps to indicate blackghost about apps reset.

Example:

	qcom,blackghost {
		compatible = "qcom,pil-blackghost";
		qcom,firmware-name = "bgelf";

		/* GPIO inputs from blackghost */
		qcom,bg2ap-status-gpio = <&msm_gpio 97 0>;
		qcom,bg2ap-errfatal-gpio = <&msm_gpio 95 0>;
		/* GPIO output to blackghost */
		qcom,ap2bg-status-gpio = <&msm_gpio 17 0>;
		qcom,ap2bg-errfatal-gpio = <&msm_gpio 23 0>;
	};
+3 −1
Original line number Diff line number Diff line
@@ -366,7 +366,9 @@ dtb-$(CONFIG_ARCH_MSM8937) += msm8937-pmi8950-mtp.dtb \

dtb-$(CONFIG_ARCH_MSM8917) += msm8917-pmi8950-mtp.dtb

dtb-$(CONFIG_ARCH_MSM8909) += msm8909w-bg-wtp-v2.dtb
dtb-$(CONFIG_ARCH_MSM8909) += msm8909w-bg-wtp-v2.dtb \
	apq8009w-bg-wtp-v2.dtb \
	apq8009w-bg-alpha.dtb

dtb-$(CONFIG_ARCH_SDM450) += sdm450-rcm.dtb \
	sdm450-cdp.dtb \
+297 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * 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.
 */

/dts-v1/;

#include "msm8909-mtp.dtsi"
#include "msm8909w.dtsi"
#include "8909w-pm660.dtsi"
#include "apq8009w-bg-memory.dtsi"
#include "msm8909-audio-bg_codec.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. APQ8009W-PM660 BG Alpha";
	compatible = "qcom,apq8009-mtp", "qcom,apq8009", "qcom,mtp";
	qcom,msm-id =   <265 0>,
			<301 0>;
	qcom,board-id = <8 0x113>;
	qcom,pmic-id =  <0x0001001b 0x0 0x0 0x0>,
			<0x0001011b 0x0 0x0 0x0>;
};

&soc {
	i2c@78b9000 { /* BLSP1 QUP5 */
		focaltech@38 {
			compatible = "focaltech,fts";
			reg = <0x38>;
			interrupt-parent = <&msm_gpio>;
			interrupts = <98 0x2008>;
			vdd-supply = <&pm660_l18>;
			vcc-i2c-supply = <&pm660_l13>;
			focaltech,irq-gpio = <&msm_gpio 98 0x2008>;
			focaltech,reset-gpio = <&msm_gpio 16 0x00>;/**/
			focaltech,max-touch-number = <5>;
			focaltech,display-coords = <0 0 390 390>;/**/
		};

		/delete-node/ it7260@46;
		/delete-node/ synaptics@20;
	};

	qcom,blackghost {
		compatible = "qcom,pil-blackghost";

		qcom,firmware-name = "bg-wear";
		/* GPIO inputs from blackghost */
		qcom,bg2ap-status-gpio = <&msm_gpio 97 0>;
		qcom,bg2ap-errfatal-gpio = <&msm_gpio 95 0>;
		/* GPIO output to blackghost */
		qcom,ap2bg-status-gpio = <&msm_gpio 17 0>;
		qcom,ap2bg-errfatal-gpio = <&msm_gpio 23 0>;
	};

	qcom,msm-ssc-sensors {
		compatible = "qcom,msm-ssc-sensors";
	};

	qcom,glink-bgcom-xprt-bg {
		compatible = "qcom,glink-bgcom-xprt";
		label = "bg";
		qcom,qos-config = <&glink_qos_bg>;
		qcom,ramp-time = <0x10>,
				     <0x20>,
				     <0x30>,
				     <0x40>;
	};

	glink_qos_bg: qcom,glink-qos-config-bg {
		compatible = "qcom,glink-qos-config";
		qcom,flow-info = <0x80 0x0>,
				 <0x70 0x1>,
				 <0x60 0x2>,
				 <0x50 0x3>;
		qcom,mtu-size = <0x800>;
		qcom,tput-stats-cycle = <0xa>;
	};

	qcom,glink_pkt {
		compatible = "qcom,glinkpkt";

		qcom,glinkpkt-bg-daemon {
			qcom,glinkpkt-transport = "bgcom";
			qcom,glinkpkt-edge = "bg";
			qcom,glinkpkt-ch-name = "bg-daemon";
			qcom,glinkpkt-dev-name = "glink_pkt_bg_daemon";
		};

		qcom,glinkpkt-bg-display-ctrl {
			qcom,glinkpkt-transport = "bgcom";
			qcom,glinkpkt-edge = "bg";
			qcom,glinkpkt-ch-name = "display-ctrl";
			qcom,glinkpkt-dev-name = "glink_pkt_bg_display_ctrl";
		};

		qcom,glinkpkt-bg-display-data {
			qcom,glinkpkt-transport = "bgcom";
			qcom,glinkpkt-edge = "bg";
			qcom,glinkpkt-ch-name = "display-data";
			qcom,glinkpkt-dev-name = "glink_pkt_bg_display_data";
		};

		qcom,glinkpkt-bg-rsb-ctrl {
			qcom,glinkpkt-transport = "bgcom";
			qcom,glinkpkt-edge = "bg";
			qcom,glinkpkt-ch-name = "RSB_CTRL";
			qcom,glinkpkt-dev-name = "glink_pkt_bg_rsb_ctrl";
		};
	};

	spi@78B8000 {  /* BLSP1 QUP4 */
		status = "ok";
		qcom,bg-spi {
			compatible = "qcom,bg-spi";
			reg = <0>;
			spi-max-frequency = <16000000>;
			interrupt-parent = <&msm_gpio>;
			qcom,irq-gpio = <&msm_gpio 110 1>;
		};
	};

	qcom,bg-rsb {
		compatible = "qcom,bg-rsb";
		vdd-ldo1-supply = <&pm660_l11>;
		vdd-ldo2-supply = <&pm660_l15>;
	};

	qcom,bg-daemon {
		compatible = "qcom,bg-daemon";
		qcom,bg-reset-gpio = <&pm660_gpios 5 0>;
		ssr-reg1-supply = <&pm660_l3>;
		ssr-reg2-supply = <&pm660_l9>;
	};
};

&i2c_1 {
	status = "okay";
	nq@28 {
		compatible = "qcom,nq-nci";
		reg = <0x28>;
		qcom,nq-irq = <&msm_gpio 50 0x00>;
		qcom,nq-ven = <&msm_gpio 36 0x00>;
		qcom,nq-firm = <&msm_gpio 38 0x00>;
		qcom,nq-esepwr = <&msm_gpio 49 0x00>;
		qcom,nq-clkreq = <&pm660_gpios 4 0x00>;
		qcom,clk-src = "BBCLK3";
		interrupt-parent = <&msm_gpio>;
		interrupts = <50 0>;
		interrupt-names = "nfc_irq";
		pinctrl-names = "nfc_active","nfc_suspend";
		pinctrl-0 = <&nfcw_int_active &nfcw_disable_active>;
		pinctrl-1 = <&nfcw_int_suspend &nfcw_disable_suspend>;
		clock-names = "ref_clk";
	};
};

&spi_0 {
	status = "disabled";
};

&i2c_3 {
	status = "disabled";
};

&i2c_4 {
	status = "disabled";
};

&i2c_2 {
	status = "disabled";
};

&sdc1_clk_off {
	config {
		pins = "sdc1_clk";
		bias-disable; /* NO pull */
		drive-strength = <2>; /* 2 MA */
		output-low;
	};
};

&sdc1_cmd_off {
	config {
		pins = "sdc1_cmd";
		bias-disable; /* NO pull */
		drive-strength = <2>; /* 2 MA */
		output-low;
	};
};

&sdc1_data_off {
	config {
		pins = "sdc1_data";
		bias-disable; /* NO pull */
		drive-strength = <2>; /* 2 MA */
		output-low;
	};
};

&sdhc_2 {
	status = "disabled";
};

&audio_codec_mtp {
	status = "disabled";
};

&audio_codec_bg {
	status = "ok";
};

&bg_cdc {
	status = "ok";
	vdd-spkr-supply = <&pm660_l11>;
};

&blsp1_uart1 {
	status = "ok";
	pinctrl-names = "default";
	pinctrl-0 = <&uart_console_sleep>;
};

/* Pinctrl dt nodes for interrupt and reset gpio for Synaptics controller */
&ts_int_active {
	mux {
		pins = "gpio98";
	};

	config {
		pins = "gpio98";
	};
};

&ts_int_suspend {
	mux {
		pins = "gpio98";
	};

	config {
		pins = "gpio98";
	};
};

&ts_reset_active {
	mux {
		pins = "gpio16";
	};

	config {
		pins = "gpio16";
	};
};

&ts_reset_suspend {
	mux {
		pins = "gpio16";
	};

	config {
		pins = "gpio16";
	};
};

&ts_release {
	mux {
		pins = "gpio98", "gpio16";
	};

	config {
		pins = "gpio98", "gpio16";
	};
};

&pm660_charger {
	qcom,micro-usb;
};

&spi4_cs0_active {
	mux {
		pins = "gpio14";
		function = "blsp_spi4";
	};
	config {
		pins = "gpio14";
		drive-strength = <2>;
		bias-disable; /* No PULL */
		output-high;
	};
};
+24 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * 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.
 */

&external_image_mem {
	reg = <0x0 0x87b00000 0x0 0x0500000>;
};

&modem_adsp_mem {
	reg = <0x0 0x88000000 0x0 0x02300000>;
};

&peripheral_mem {
	reg = <0x0 0x8a300000 0x0 0x0600000>;
};
+315 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * 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.
 */

/dts-v1/;

#include "msm8909-mtp.dtsi"
#include "msm8909w.dtsi"
#include "8909w-pm660.dtsi"
#include "apq8009w-bg-memory.dtsi"
#include "msm8909-audio-bg_codec.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. APQ8009W-PM660 BLACKGHOST WTP";
	compatible = "qcom,apq8009-mtp", "qcom,apq8009", "qcom,mtp";
	qcom,msm-id =   <265 0>,
			<301 0>;
	qcom,board-id = <8 0x10f>;
	qcom,pmic-id =  <0x0001001b 0x0 0x0 0x0>,
			<0x0001011b 0x0 0x0 0x0>;
};

&soc {
	i2c@78b9000 { /* BLSP1 QUP5 */
		synaptics@20 {
			compatible = "synaptics,dsx-i2c";
			reg = <0x20>;
			interrupt-parent = <&msm_gpio>;
			interrupts = <98 0x2008>;
			vdd_ana-supply = <&pm660_l18>;
			vcc_i2c-supply = <&pm660_l13>;
			synaptics,pwr-reg-name = "vdd_ana";
			synaptics,bus-reg-name = "vcc_i2c";
			pinctrl-names = "pmx_ts_active", "pmx_ts_suspend",
							"pmx_ts_release";
			pinctrl-0 = <&ts_int_active &ts_reset_active>;
			pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;
			pinctrl-2 = <&ts_release>;
			synaptics,irq-gpio = <&msm_gpio 98 0x2008>;
			synaptics,irq-on-state = <0>;
			synaptics,irq-flags = <0x2008>;
			synaptics,power-delay-ms = <200>;
			synaptics,reset-delay-ms = <200>;
			synaptics,max-y-for-2d = <389>;
			synaptics,bus-lpm-cur-uA = <450>;
			synaptics,do-not-disable-regulators;
			synaptics,wakeup-gestures-en;
			synaptics,resume-in-workqueue;
			synaptics,x-flip;
			synaptics,y-flip;
			/delete-property/ synaptics,reset-gpio;
			/delete-property/ synaptics,display-coords;
			/delete-property/ synaptics,panel-coords;
			/delete-property/ synaptics,power-down;
			/delete-property/ synaptics,disable-gpios;
			/delete-property/ synaptics,is_wake;
		};

		/delete-node/ it7260@46;
	};

	qcom,blackghost {
		compatible = "qcom,pil-blackghost";

		qcom,firmware-name = "bg-wear";
		/* GPIO inputs from blackghost */
		qcom,bg2ap-status-gpio = <&msm_gpio 97 0>;
		qcom,bg2ap-errfatal-gpio = <&msm_gpio 95 0>;
		/* GPIO output to blackghost */
		qcom,ap2bg-status-gpio = <&msm_gpio 17 0>;
		qcom,ap2bg-errfatal-gpio = <&msm_gpio 23 0>;
	};

	qcom,msm-ssc-sensors {
		compatible = "qcom,msm-ssc-sensors";
	};

	qcom,glink-bgcom-xprt-bg {
		compatible = "qcom,glink-bgcom-xprt";
		label = "bg";
		qcom,qos-config = <&glink_qos_bg>;
		qcom,ramp-time = <0x10>,
				     <0x20>,
				     <0x30>,
				     <0x40>;
	};

	glink_qos_bg: qcom,glink-qos-config-bg {
		compatible = "qcom,glink-qos-config";
		qcom,flow-info = <0x80 0x0>,
				 <0x70 0x1>,
				 <0x60 0x2>,
				 <0x50 0x3>;
		qcom,mtu-size = <0x800>;
		qcom,tput-stats-cycle = <0xa>;
	};

	qcom,glink_pkt {
		compatible = "qcom,glinkpkt";

		qcom,glinkpkt-bg-daemon {
			qcom,glinkpkt-transport = "bgcom";
			qcom,glinkpkt-edge = "bg";
			qcom,glinkpkt-ch-name = "bg-daemon";
			qcom,glinkpkt-dev-name = "glink_pkt_bg_daemon";
		};

		qcom,glinkpkt-bg-display-ctrl {
			qcom,glinkpkt-transport = "bgcom";
			qcom,glinkpkt-edge = "bg";
			qcom,glinkpkt-ch-name = "display-ctrl";
			qcom,glinkpkt-dev-name = "glink_pkt_bg_display_ctrl";
		};

		qcom,glinkpkt-bg-display-data {
			qcom,glinkpkt-transport = "bgcom";
			qcom,glinkpkt-edge = "bg";
			qcom,glinkpkt-ch-name = "display-data";
			qcom,glinkpkt-dev-name = "glink_pkt_bg_display_data";
		};

		qcom,glinkpkt-bg-rsb-ctrl {
			qcom,glinkpkt-transport = "bgcom";
			qcom,glinkpkt-edge = "bg";
			qcom,glinkpkt-ch-name = "RSB_CTRL";
			qcom,glinkpkt-dev-name = "glink_pkt_bg_rsb_ctrl";
		};
	};

	spi@78B8000 {  /* BLSP1 QUP4 */
		status = "ok";
		qcom,bg-spi {
			compatible = "qcom,bg-spi";
			reg = <0>;
			spi-max-frequency = <16000000>;
			interrupt-parent = <&msm_gpio>;
			qcom,irq-gpio = <&msm_gpio 110 1>;
		};
	};

	qcom,bg-rsb {
		compatible = "qcom,bg-rsb";
		vdd-ldo1-supply = <&pm660_l11>;
		vdd-ldo2-supply = <&pm660_l15>;
	};

	qcom,bg-daemon {
		compatible = "qcom,bg-daemon";
		qcom,bg-reset-gpio = <&pm660_gpios 5 0>;
		ssr-reg1-supply = <&pm660_l3>;
		ssr-reg2-supply = <&pm660_l9>;
	};
};

&i2c_1 {
	status = "okay";
	nq@28 {
		compatible = "qcom,nq-nci";
		reg = <0x28>;
		qcom,nq-irq = <&msm_gpio 50 0x00>;
		qcom,nq-ven = <&msm_gpio 36 0x00>;
		qcom,nq-firm = <&msm_gpio 38 0x00>;
		qcom,nq-esepwr = <&msm_gpio 49 0x00>;
		qcom,nq-clkreq = <&pm660_gpios 4 0x00>;
		qcom,clk-src = "BBCLK3";
		interrupt-parent = <&msm_gpio>;
		interrupts = <50 0>;
		interrupt-names = "nfc_irq";
		pinctrl-names = "nfc_active","nfc_suspend";
		pinctrl-0 = <&nfcw_int_active &nfcw_disable_active>;
		pinctrl-1 = <&nfcw_int_suspend &nfcw_disable_suspend>;
		clock-names = "ref_clk";
	};
};

&spi_0 {
	status = "disabled";
};

&i2c_3 {
	status = "disabled";
};

&i2c_4 {
	status = "disabled";
};

&i2c_2 {
	status = "disabled";
};

&sdc1_clk_off {
	config {
		pins = "sdc1_clk";
		bias-disable; /* NO pull */
		drive-strength = <2>; /* 2 MA */
		output-low;
	};
};

&sdc1_cmd_off {
	config {
		pins = "sdc1_cmd";
		bias-disable; /* NO pull */
		drive-strength = <2>; /* 2 MA */
		output-low;
	};
};

&sdc1_data_off {
	config {
		pins = "sdc1_data";
		bias-disable; /* NO pull */
		drive-strength = <2>; /* 2 MA */
		output-low;
	};
};

&sdhc_2 {
	status = "disabled";
};

&audio_codec_mtp {
	status = "disabled";
};

&audio_codec_bg {
	status = "ok";
};

&bg_cdc {
	status = "ok";
	vdd-spkr-supply = <&pm660_l11>;
};

&blsp1_uart1 {
	status = "ok";
	pinctrl-names = "default";
	pinctrl-0 = <&uart_console_sleep>;
};

/* Pinctrl dt nodes for interrupt and reset gpio for Synaptics controller */
&ts_int_active {
	mux {
		pins = "gpio98";
	};

	config {
		pins = "gpio98";
	};
};

&ts_int_suspend {
	mux {
		pins = "gpio98";
	};

	config {
		pins = "gpio98";
		/delete-property/ bias-pull-down;
		bias-disable; /* No PULL */
	};
};

&ts_reset_active {
	mux {
		pins = "gpio16";
	};

	config {
		pins = "gpio16";
	};
};

&ts_reset_suspend {
	mux {
		pins = "gpio16";
	};

	config {
		pins = "gpio16";
	};
};

&ts_release {
	mux {
		pins = "gpio98", "gpio16";
	};

	config {
		pins = "gpio98", "gpio16";
	};
};

&spi4_cs0_active {
	mux {
		pins = "gpio14";
		function = "blsp_spi4";
	};
	config {
		pins = "gpio14";
		drive-strength = <2>;
		bias-disable; /* No PULL */
		output-high;
	};
};