3244442406
On MSM8916 the wireless connectivity functionality (WiFi/Bluetooth) is split into the digital part inside the SoC and the analog RF part inside a supplementary WCN36xx chip. For MSM8916, three different options exist: - WCN3620 (WLAN 802.11 b/g/n 2.4 GHz + Bluetooth) - WCN3660B (WLAN 802.11 a/b/g/n 2.4/5 GHz + Bluetooth) - WCN3680B (WLAN 802.11ac 2.4/5 GHz + Bluetooth) Choosing one of these is up to the board vendor. This means that the compatible belongs into the board-specific DT part so people porting new boards pay attention to set the correct compatible. Right now msm8916.dtsi sets "qcom,wcn3620" as default compatible, which does not work at all for boards that have WCN3660B or WCN3680B. Remove the default compatible from msm8196.dtsi and move it to the board DT as follows: - Boards with only &pronto { status = "okay"; } used the default "qcom,wcn3620" so far. They now set this explicitly for &wcnss_iris. - Boards with &pronto { ... iris { compatible = "qcom,wcn3660b"; }}; already had an override that just moves to &wcnss_iris now. - For msm8916-samsung-a2015-common.dtsi the WCN compatible differs for boards making use of it (a3u: wcn3620, a5u: wcn3660b, e2015: wcn3620) so the definitions move to the board-specific DT part. Since this requires touching all the board DTs, use this as a chance to name the WCNSS-related labels consistently, so everything is grouped properly when sorted alphabetically. No functional change, just clean-up for more clarity & easier porting. Aside from ordering the generated DTBs are identical. Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20230309091452.1011776-1-stephan.gerhold@kernkonzept.com
438 lines
7.8 KiB
Plaintext
438 lines
7.8 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
/dts-v1/;
|
|
|
|
#include "msm8916-pm8916.dtsi"
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
#include <dt-bindings/leds/common.h>
|
|
|
|
/ {
|
|
model = "Longcheer L8150";
|
|
compatible = "longcheer,l8150", "qcom,msm8916-v1-qrd/9-v1", "qcom,msm8916";
|
|
chassis-type = "handset";
|
|
|
|
aliases {
|
|
serial0 = &blsp1_uart2;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0";
|
|
};
|
|
|
|
reserved-memory {
|
|
/* wcnss.mdt is not relocatable, so it must be loaded at 0x8b600000 */
|
|
/delete-node/ wcnss@89300000;
|
|
|
|
wcnss_mem: wcnss@8b600000 {
|
|
reg = <0x0 0x8b600000 0x0 0x600000>;
|
|
no-map;
|
|
};
|
|
};
|
|
|
|
gpio-keys {
|
|
compatible = "gpio-keys";
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&gpio_keys_default>;
|
|
|
|
label = "GPIO Buttons";
|
|
|
|
button-volume-up {
|
|
label = "Volume Up";
|
|
gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_VOLUMEUP>;
|
|
};
|
|
};
|
|
|
|
reg_ctp: regulator-ctp {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "ctp";
|
|
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
|
|
gpio = <&msmgpio 17 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&ctp_pwr_en_default>;
|
|
};
|
|
|
|
flash-led-controller {
|
|
compatible = "sgmicro,sgm3140";
|
|
flash-gpios = <&msmgpio 31 GPIO_ACTIVE_HIGH>;
|
|
enable-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&camera_flash_default>;
|
|
|
|
flash_led: led {
|
|
function = LED_FUNCTION_FLASH;
|
|
color = <LED_COLOR_ID_WHITE>;
|
|
flash-max-timeout-us = <250000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&blsp_i2c1 {
|
|
status = "okay";
|
|
|
|
led-controller@45 {
|
|
compatible = "awinic,aw2013";
|
|
reg = <0x45>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
vcc-supply = <&pm8916_l17>;
|
|
|
|
led@0 {
|
|
reg = <0>;
|
|
led-max-microamp = <5000>;
|
|
function = LED_FUNCTION_INDICATOR;
|
|
color = <LED_COLOR_ID_RED>;
|
|
};
|
|
|
|
led@1 {
|
|
reg = <1>;
|
|
led-max-microamp = <5000>;
|
|
function = LED_FUNCTION_INDICATOR;
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
};
|
|
|
|
led@2 {
|
|
reg = <2>;
|
|
led-max-microamp = <5000>;
|
|
function = LED_FUNCTION_INDICATOR;
|
|
color = <LED_COLOR_ID_BLUE>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&blsp_i2c2 {
|
|
status = "okay";
|
|
|
|
accelerometer@10 {
|
|
compatible = "bosch,bmc156_accel";
|
|
reg = <0x10>;
|
|
|
|
/*
|
|
* For some reason the interrupt line is usually not connected
|
|
* to the BMC156. However, there are two pads next to the chip
|
|
* that can be shorted to make it work if needed.
|
|
*
|
|
* interrupt-parent = <&msmgpio>;
|
|
* interrupts = <116 IRQ_TYPE_EDGE_RISING>;
|
|
*/
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&accel_int_default>;
|
|
|
|
vdd-supply = <&pm8916_l17>;
|
|
vddio-supply = <&pm8916_l6>;
|
|
|
|
mount-matrix = "0", "1", "0",
|
|
"-1", "0", "0",
|
|
"0", "0", "1";
|
|
};
|
|
|
|
magnetometer@12 {
|
|
compatible = "bosch,bmc156_magn";
|
|
reg = <0x12>;
|
|
|
|
interrupt-parent = <&msmgpio>;
|
|
interrupts = <113 IRQ_TYPE_EDGE_RISING>;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&magn_int_default>;
|
|
|
|
vdd-supply = <&pm8916_l17>;
|
|
vddio-supply = <&pm8916_l6>;
|
|
};
|
|
|
|
light-sensor@23 {
|
|
compatible = "liteon,ltr559";
|
|
reg = <0x23>;
|
|
proximity-near-level = <75>;
|
|
|
|
interrupt-parent = <&msmgpio>;
|
|
interrupts = <115 IRQ_TYPE_EDGE_FALLING>;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&light_int_default>;
|
|
|
|
vdd-supply = <&pm8916_l17>;
|
|
vio-supply = <&pm8916_l6>;
|
|
};
|
|
|
|
gyroscope@68 {
|
|
compatible = "bosch,bmg160";
|
|
reg = <0x68>;
|
|
|
|
interrupt-parent = <&msmgpio>;
|
|
interrupts = <23 IRQ_TYPE_EDGE_RISING>,
|
|
<22 IRQ_TYPE_EDGE_RISING>;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&gyro_int_default>;
|
|
|
|
vdd-supply = <&pm8916_l17>;
|
|
vddio-supply = <&pm8916_l6>;
|
|
};
|
|
};
|
|
|
|
&blsp_i2c5 {
|
|
status = "okay";
|
|
|
|
rmi4@20 {
|
|
compatible = "syna,rmi4-i2c";
|
|
reg = <0x20>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
interrupt-parent = <&msmgpio>;
|
|
interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
|
|
|
|
vdd-supply = <®_ctp>;
|
|
vio-supply = <&pm8916_l6>;
|
|
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&tp_int_default>;
|
|
|
|
syna,startup-delay-ms = <10>;
|
|
|
|
rmi4-f01@1 {
|
|
reg = <0x1>;
|
|
syna,nosleep-mode = <1>; /* Allow sleeping */
|
|
};
|
|
|
|
rmi4-f12@12 {
|
|
reg = <0x12>;
|
|
syna,sensor-type = <1>; /* Touchscreen */
|
|
};
|
|
};
|
|
};
|
|
|
|
&blsp1_uart2 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pm8916_resin {
|
|
status = "okay";
|
|
linux,code = <KEY_VOLUMEDOWN>;
|
|
};
|
|
|
|
&pm8916_usbin {
|
|
status = "okay";
|
|
};
|
|
|
|
&pm8916_vib {
|
|
status = "okay";
|
|
};
|
|
|
|
&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>;
|
|
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
|
|
|
|
non-removable;
|
|
};
|
|
|
|
&usb {
|
|
status = "okay";
|
|
dr_mode = "peripheral";
|
|
extcon = <&pm8916_usbin>;
|
|
};
|
|
|
|
&usb_hs_phy {
|
|
extcon = <&pm8916_usbin>;
|
|
};
|
|
|
|
&wcnss {
|
|
status = "okay";
|
|
};
|
|
|
|
&wcnss_iris {
|
|
compatible = "qcom,wcn3620";
|
|
};
|
|
|
|
&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 = <1200000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
};
|
|
|
|
s4 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <2100000>;
|
|
};
|
|
|
|
l1 {
|
|
regulator-min-microvolt = <1225000>;
|
|
regulator-max-microvolt = <1225000>;
|
|
};
|
|
|
|
l2 {
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
};
|
|
|
|
l4 {
|
|
regulator-min-microvolt = <2050000>;
|
|
regulator-max-microvolt = <2050000>;
|
|
};
|
|
|
|
l5 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
|
|
l6 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
|
|
l7 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
|
|
l8 {
|
|
regulator-min-microvolt = <2850000>;
|
|
regulator-max-microvolt = <2900000>;
|
|
};
|
|
|
|
l9 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
l10 {
|
|
regulator-min-microvolt = <2700000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
};
|
|
|
|
l11 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <2950000>;
|
|
regulator-allow-set-load;
|
|
regulator-system-load = <200000>;
|
|
};
|
|
|
|
l12 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <2950000>;
|
|
};
|
|
|
|
l13 {
|
|
regulator-min-microvolt = <3075000>;
|
|
regulator-max-microvolt = <3075000>;
|
|
};
|
|
|
|
l14 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
l15 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
l16 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
l17 {
|
|
regulator-min-microvolt = <2850000>;
|
|
regulator-max-microvolt = <2850000>;
|
|
};
|
|
|
|
l18 {
|
|
regulator-min-microvolt = <2700000>;
|
|
regulator-max-microvolt = <2700000>;
|
|
};
|
|
};
|
|
|
|
&msmgpio {
|
|
accel_int_default: accel-int-default-state {
|
|
pins = "gpio116";
|
|
function = "gpio";
|
|
|
|
drive-strength = <2>;
|
|
bias-disable;
|
|
};
|
|
|
|
camera_flash_default: camera-flash-default-state {
|
|
pins = "gpio31", "gpio32";
|
|
function = "gpio";
|
|
|
|
drive-strength = <2>;
|
|
bias-disable;
|
|
};
|
|
|
|
ctp_pwr_en_default: ctp-pwr-en-default-state {
|
|
pins = "gpio17";
|
|
function = "gpio";
|
|
|
|
drive-strength = <2>;
|
|
bias-disable;
|
|
};
|
|
|
|
gpio_keys_default: gpio-keys-default-state {
|
|
pins = "gpio107";
|
|
function = "gpio";
|
|
|
|
drive-strength = <2>;
|
|
bias-pull-up;
|
|
};
|
|
|
|
gyro_int_default: gyro-int-default-state {
|
|
pins = "gpio22", "gpio23";
|
|
function = "gpio";
|
|
|
|
drive-strength = <2>;
|
|
bias-disable;
|
|
};
|
|
|
|
light_int_default: light-int-default-state {
|
|
pins = "gpio115";
|
|
function = "gpio";
|
|
|
|
drive-strength = <2>;
|
|
bias-disable;
|
|
};
|
|
|
|
magn_int_default: magn-int-default-state {
|
|
pins = "gpio113";
|
|
function = "gpio";
|
|
|
|
drive-strength = <2>;
|
|
bias-disable;
|
|
};
|
|
|
|
tp_int_default: tp-int-default-state {
|
|
pins = "gpio13";
|
|
function = "gpio";
|
|
|
|
drive-strength = <2>;
|
|
bias-disable;
|
|
};
|
|
};
|