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

Commit a28aabaf authored by Gustavo Solaira's avatar Gustavo Solaira
Browse files

ARM: dts: msm: Add configuration for mdmcalifornium CCARD boards



Add the configuration and nodes needed for mdmcalifornium CCARD boards.
This includes peripherals, regulators, blsp and gpio configuration.

Change-Id: I4ed802b6e98e818d9f28fcad8cd140110cac0083
Signed-off-by: default avatarGustavo Solaira <gustavos@codeaurora.org>
parent 38efdccf
Loading
Loading
Loading
Loading
+356 −0
Original line number Diff line number Diff line
@@ -13,3 +13,359 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include "mdmcalifornium-v1.1.dtsi"
#include "mdmcalifornium-pinctrl.dtsi"

&soc {
	sound {
		status = "disabled";
	};

	sound-auto {
		compatible = "qcom,mdm-audio-auto";
		qcom,model = "mdm-auto-i2s-snd-card";

		qcom,mi2s-interface-mode = "pri_mi2s_master", "sec_mi2s_master";
		qcom,auxpcm-interface-mode = "pri_pcm_master", "sec_pcm_master";
		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
				<&loopback>, <&hostless>, <&afe>, <&routing>,
				<&pcm_dtmf>, <&host_pcm>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
				"msm-voip-dsp", "msm-pcm-voice",
				"msm-pcm-loopback", "msm-pcm-hostless",
				"msm-pcm-afe", "msm-pcm-routing",
				"msm-pcm-dtmf", "msm-voice-host-pcm";
		asoc-cpu = <&dai_pri_auxpcm>, <&mi2s_prim>, <&mi2s_sec>,
				<&dtmf_tx>,
				<&rx_capture_tx>, <&rx_playback_rx>,
				<&tx_capture_tx>, <&tx_playback_rx>,
				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
				<&afe_proxy_tx>, <&incall_record_rx>,
				<&incall_record_tx>, <&incall_music_rx>,
				<&dai_sec_auxpcm>;
		asoc-cpu-names = "msm-dai-q6-auxpcm.1",
				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
				"msm-dai-stub-dev.4", "msm-dai-stub-dev.5",
				"msm-dai-stub-dev.6", "msm-dai-stub-dev.7",
				"msm-dai-stub-dev.8", "msm-dai-q6-dev.224",
				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
				"msm-dai-q6-auxpcm.2";
		asoc-codec = <&tlv320aic3x_codec>, <&stub_codec>;
		asoc-codec-names = "tlv320aic3x-codec", "msm-stub-codec.1";
	};

	qcom,ntn_avb {
		compatible = "qcom,ntn_avb";
		qcom,ntn-rst-delay-msec = <100>;
		qcom,ntn-rc-num = <0>;
		qcom,ntn-fw-load-delay-msec = <200>;
		qcom,ntn-pcierst-resx;
		qcom,ntn-timestamp-valid-window = <4>; /* 4 is approx 67 ms */
	};

	usb_detect {
		compatible = "qcom,gpio-usbdetect";
		interrupt-parent = <&spmi_bus>;
		interrupts = <0x0 0x0d 0x0>; /* PMD9655 VBUS DETECT */
		interrupt-names = "vbus_det_irq";
	};

	bt_qca6174 {
		qca,bt-vdd-core-supply = <&wlan_ext_vreg>;
		/delete-property/ qca,bt-vdd-xtal-supply;
	};

	/* 1.1V/1.2V/1.8V/3.3V regulator for ethernet */
	ntn_vreg: regulator-ntn-tps65051 {
		compatible = "regulator-fixed";
		regulator-name = "ntn_vreg";
		startup-delay-us = <170>;
		gpio = <&tlmm_pinmux 69 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&ntn_supply_gpio>;
		enable-active-high;
		regulator-always-on;
	};

	/* 4V regulator for peripherals */
	periph_vreg: regulator-periph-lm53635 {
		compatible = "regulator-fixed";
		regulator-name = "periph_vreg";
		startup-delay-us = <4000>;
		gpio = <&tlmm_pinmux 9 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&periph_vreg_gpio>;
		enable-active-high;
		regulator-always-on;
	};

	/* 1.8V/3.3V external regulator for wlan */
	wlan_ext_vreg: regulator-wlan-tlv62065 {
		compatible = "regulator-fixed";
		regulator-name = "wlan_ext_vreg";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		startup-delay-us = <500>;
		gpio = <&tlmm_pinmux 97 0>;
		enable-active-high;
	};

	/* 1.8V/3.3V regulator for audio codec */
	codec_vreg: regulator-codec-tlv7103318 {
		compatible = "regulator-fixed";
		regulator-name = "codec_vreg";
		startup-delay-us = <100>;
		gpio = <&tlmm_pinmux 38 0>;
		enable-active-high;
	};

	/* 3.0V regulator for BTLE chip */
	btle_vreg: regulator-btle-lp5907 {
		compatible = "regulator-fixed";
		regulator-name = "btle_vreg";
		startup-delay-us = <150>;
		gpio = <&tlmm_pinmux 34 0>;
		enable-active-high;
		regulator-always-on;
	};

	/* 1.8V regulator for A2B transceiver */
	a2b_vreg: regulator-a2b-lp3996 {
		compatible = "regulator-fixed";
		regulator-name = "a2b_vreg";
		startup-delay-us = <300>;
		gpio = <&tlmm_pinmux 96 0>;
		enable-active-high;
		regulator-always-on;
	};

	/* 1.8V/3.3V regulator for gyro/accel */
	gyro_vreg: regulator-gyro-tlv7103318 {
		compatible = "regulator-fixed";
		regulator-name = "gyro_vreg";
		startup-delay-us = <100>;
		gpio = <&tlmm_pinmux 99 0>;
		enable-active-high;
	};
};

&tlmm_pinmux {
	periph_vreg_gpio: periph_vreg_gpio {
		mux {
			pins = "gpio9";
			function = "gpio";
		};
		config {
			pins = "gpio9";
			drive-strength = <2>;
			bias-disable;
		};
	};

	ntn_supply_gpio: ntn_supply_gpio {
		mux {
			pins = "gpio69";
			function = "gpio";
		};

		config {
			pins = "gpio69";
			drive-strength = <2>;
			bias-disable;
		};
	};
};

&cnss_pcie {
	vdd-wlan-io-supply = <&wlan_ext_vreg>;
	/delete-property/ vdd-wlan-xtal-supply;
	/delete-property/ vdd-wlan-xtal-aon-supply;
};

/* Console conflicts with periph_vreg (GPIO_9) */
&blsp1_uart3 {
	status = "disabled";
	pinctrl-names = "default";
	pinctrl-0 = <&uart3_console_active>;
};

/* BT classic */
&blsp1_uart2_hs {
	status = "ok";
};

&i2c_3 {
	status = "ok";

	wcd9xxx_codec@d {
		status = "disabled";
	};

	tlv320aic3x_codec: tlv320aic3x@18 {
		compatible = "ti,tlv320aic3x";
		reg = <0x18>;
		gpio-reset = <&tlmm_pinmux 90 0>;
		AVDD-supply = <&codec_vreg>;
		IOVDD-supply = <&pmdcalifornium_l6>;
	};

	lsm330-gyro@6a {
		compatible = "st,lsm330-gyro";
		reg = <0x6a>;
		vdd-supply = <&gyro_vreg>;
	};

	lsm330-accel@1d {
		compatible = "st,lsm330-accel";
		reg = <0x1d>;
		vdd-supply = <&gyro_vreg>;
	};
};

&spi_2 {
	status = "disabled";
	spi-max-frequency = <19200000>;
};

&usb3 {
	/* Disable pmic_id_irq due to HW glitch */
	interrupt-map = <0x0 0 &intc 0 202 0
			 0x0 1 &intc 0 203 0
			 0x0 2 &intc 0 180 0>;
	interrupt-names = "hs_phy_irq", "ss_phy_irq", "pwr_event_irq";
	qcom,charging-disabled;
};

&pmdcalifornium_gpios {
	gpio@c000 { /* GPIO 1 - PCIESW_EN */
		status = "ok";
		qcom,mode = <1>;		/* Digital output*/
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,invert = <1>;		/* Output high */
		qcom,vin-sel = <1>;		/* 1.8 V */
		qcom,src-sel = <0>;		/* Constant */
		qcom,out-strength = <1>;	/* High drive strength */
		qcom,master-en = <1>;		/* Enable GPIO */
	};

	gpio@c100 { /* GPIO 2 - VADC */
		/* GPIO should be left off, and in the high
		 * impedance state when the pin is used with the VADC
		 */
		status = "ok";
		qcom,master-en = <0>;		/* DISABLE GPIO */
	};

	gpio@c200 { /* GPIO 3 - CAN_EN */
		status = "ok";
		qcom,mode = <1>;		/* Digital output*/
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,invert = <1>;		/* Output high */
		qcom,vin-sel = <1>;		/* 1.8 V */
		qcom,src-sel = <0>;		/* Constant */
		qcom,out-strength = <1>;	/* High drive strength */
		qcom,master-en = <1>;		/* Enable GPIO */
	};

	gpio@c400 { /* GPIO 5 - USB_ID */
		status = "ok";
		qcom,mode = <0>;		/* Digital input */
		qcom,pull = <1>;		/* Pull up 1.5 uA */
		qcom,vin-sel = <1>;		/* 1.8 V */
		qcom,master-en = <1>;		/* Enable GPIO */
	};

	gpio@c500 { /* GPIO 6 - Rome 3.3V control */
		status = "ok";
		qcom,mode = <1>;		/* Digital output*/
		qcom,output-type = <0>;		/* CMOS logic */
		qcom,invert = <1>;		/* Output high */
		qcom,vin-sel = <0>;		/* VPH_PWR */
		qcom,src-sel = <0>;		/* Constant */
		qcom,out-strength = <1>;	/* High drive strength */
		qcom,master-en = <1>;		/* Enable GPIO */
	};

	gpio@c700 { /* GPIO 8 - BT_EN */
		status = "ok";
		qcom,mode = <1>;		/* Digital output*/
		qcom,pull = <4>;		/* Pulldown 10uA */
		qcom,vin-sel = <0>;		/* VPH_PWR */
		qcom,src-sel = <0>;		/* GPIO */
		qcom,invert = <0>;		/* Invert */
		qcom,master-en = <1>;		/* Enable GPIO */
	};
};

&pmdcalifornium_vadc {
	chan@83 {
		label = "vph_pwr";
		reg = <0x83>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <1>;
		qcom,calibration-type = "absolute";
		qcom,scale-function = <0>;
		qcom,hw-settle-time = <0>;
		qcom,fast-avg-setup = <0>;
	};

	chan@4c {
		label = "xo_therm_buf";
		reg = <0x4c>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <4>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,vadc-thermal-node;
	};

	chan@53 {
		label = "ambient_therm";
		reg = <0x53>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,vadc-thermal-node;
	};

	chan@4d {
		label = "mdm_case_therm";
		reg = <0x4d>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,vadc-thermal-node;
	};

	chan@4e {
		label = "pa_therm1";
		reg = <0x4e>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,vadc-thermal-node;
	};

	chan@4f {
		label = "pa_therm2";
		reg = <0x4f>;
		qcom,decimation = <2>;
		qcom,pre-div-channel-scaling = <0>;
		qcom,calibration-type = "ratiometric";
		qcom,scale-function = <2>;
		qcom,hw-settle-time = <2>;
		qcom,fast-avg-setup = <0>;
		qcom,vadc-thermal-node;
	};
};
+4 −0
Original line number Diff line number Diff line
@@ -20,3 +20,7 @@
		     "qcom,mtp";
	qcom,board-id = <8 0x6>, <8 0x106>;
};

&qnand_1 {
	status = "ok";
};