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

Commit 7ac464b1 authored by Raja Mallik's avatar Raja Mallik Committed by Gerrit - the friendly Code Review server
Browse files

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



Add DT changes for apq8009 WTP 512MB variant(v2)  with pm660 PMIC
support.

Snapshot of apq8009 device tree is taken from msm-3.18 kernel version
@ commit bf9148fbb54a75 ("ARM: dts: msm: disable internal pull up for
8909w BG")

Change-Id: I57594d1e079e72977821db3c28e8c8b83950c99d
Signed-off-by: default avatarRaja Mallik <rmallik@codeaurora.org>
parent be0cbf70
Loading
Loading
Loading
Loading
+53 −0
Original line number Diff line number Diff line
FocalTech touch controller

The focaltech controller is connected to host processor
via i2c. The controller generates interrupts when the
user touches the panel. The host controller is expected
to read the touch coordinates over i2c and pass the coordinates
to the rest of the system.

Required properties:

 - compatible		: should be "focaltech,fts".
 - reg				: i2c slave address of the device.
 - interrupt-parent	: parent of interrupt.
 - interrupts		: touch sample interrupt to indicate presense or release
				of fingers on the panel.
 - vdd-supply		: Power supply needed to power up the device.
 - vcc-i2c-supply	: Power source required to power up i2c bus.
 - focaltech,irq-gpio	: irq gpio which is to provide interrupts to host,
				same as "interrupts" node. It will also
				contain active low or active high information.
 - focaltech,reset-gpio	: reset gpio to control the reset of chip.
 - focaltech,display-coords : display coordinates in pixels. It is a four
				tuple consisting of min x, min y, max x and
				max y values

Optional properties:
 - focaltech,max-touch-number	: maximnum number of touch points supported.
 - focaltech,have-key 		: specify whether virtual keys are present.
 - focaltech,key-number 	: number of keys, maximum 3.
 - focaltech,keys 			: array of key code.
 - focaltech,key-y-coord 	: y coordinate for the keys.
 - focaltech,key-x-coords	: array of x coordinates for the keys.

Example:
	i2c@f9923000{
		focaltech@38{
			compatible = "focaltech,fts";
			reg = <0x38>;
			interrupt-parent = <&msmgpio>;
			interrupts = <98 0x2008>;
			vdd-supply = <&pm8110_l19>;
			vcc_i2c-supply = <&pm8110_l14>;
			focaltech,reset-gpio = <&msmgpio 16 0x00>;
			focaltech,irq-gpio = <&msmgpio 98 0x2008>;
			focaltech,display-coords = <0 0 480 800>;
			focaltech,max-touch-number = <2>;
			focaltech,have-key;
			focaltech,key-number = <3>;
			focaltech,keys = <139 142 140>;
			focaltech,key-y-coord = <700>;
			focaltech,key-x-coords = <80 240 400>;
		};
	};
+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
@@ -306,7 +306,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>;
};
Loading