2021-07-12 15:37:32 +02:00
|
|
|
// SPDX-License-Identifier: GPL-2.0-only
|
2022-11-07 15:55:11 +01:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2020 Stephan Gerhold
|
|
|
|
*/
|
2021-07-12 15:37:32 +02:00
|
|
|
|
|
|
|
/dts-v1/;
|
|
|
|
|
|
|
|
#include "msm8916-pm8916.dtsi"
|
2023-10-03 15:18:25 +02:00
|
|
|
#include "msm8916-modem-qdsp6.dtsi"
|
|
|
|
|
2021-07-12 15:37:32 +02:00
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
|
|
#include <dt-bindings/input/input.h>
|
2021-07-12 15:37:34 +02:00
|
|
|
#include <dt-bindings/leds/common.h>
|
2021-07-12 15:37:32 +02:00
|
|
|
|
|
|
|
/ {
|
|
|
|
model = "Xiaomi Redmi 2 (Wingtech WT88047)";
|
|
|
|
compatible = "wingtech,wt88047", "qcom,msm8916";
|
2021-10-16 12:20:24 +02:00
|
|
|
chassis-type = "handset";
|
2021-07-12 15:37:32 +02:00
|
|
|
|
|
|
|
aliases {
|
2023-05-29 14:47:03 +02:00
|
|
|
mmc0 = &sdhc_1; /* eMMC */
|
|
|
|
mmc1 = &sdhc_2; /* SD card */
|
2023-05-29 14:46:59 +02:00
|
|
|
serial0 = &blsp_uart2;
|
2021-07-12 15:37:32 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
chosen {
|
|
|
|
stdout-path = "serial0";
|
|
|
|
};
|
|
|
|
|
2023-10-03 15:18:25 +02:00
|
|
|
speaker_amp: audio-amplifier {
|
|
|
|
compatible = "simple-audio-amplifier";
|
|
|
|
enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
|
|
|
|
sound-name-prefix = "Speaker Amp";
|
|
|
|
pinctrl-0 = <&speaker_amp_default>;
|
|
|
|
pinctrl-names = "default";
|
|
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
|
|
* This seems to be actually an analog switch that either routes audio
|
|
|
|
* to the headphone jack or nowhere. Given that we need to enable a GPIO
|
|
|
|
* to get sound on headphones, modelling it as simple-audio-amplifier
|
|
|
|
* works just fine.
|
|
|
|
*/
|
|
|
|
headphones_switch: audio-switch {
|
|
|
|
compatible = "simple-audio-amplifier";
|
|
|
|
enable-gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>;
|
|
|
|
sound-name-prefix = "Headphones Switch";
|
|
|
|
pinctrl-0 = <&headphones_switch_default>;
|
|
|
|
pinctrl-names = "default";
|
|
|
|
};
|
|
|
|
|
2022-11-28 05:16:32 +00:00
|
|
|
flash-led-controller {
|
|
|
|
compatible = "ocs,ocp8110";
|
2023-05-29 14:46:58 +02:00
|
|
|
enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
|
|
|
|
flash-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
|
2022-11-28 05:16:32 +00:00
|
|
|
|
|
|
|
pinctrl-names = "default";
|
|
|
|
pinctrl-0 = <&camera_flash_default>;
|
|
|
|
|
|
|
|
flash_led: led {
|
|
|
|
function = LED_FUNCTION_FLASH;
|
|
|
|
color = <LED_COLOR_ID_WHITE>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2021-07-12 15:37:32 +02:00
|
|
|
gpio-keys {
|
|
|
|
compatible = "gpio-keys";
|
|
|
|
|
|
|
|
pinctrl-names = "default";
|
|
|
|
pinctrl-0 = <&gpio_keys_default>;
|
|
|
|
|
|
|
|
label = "GPIO Buttons";
|
|
|
|
|
2022-06-15 17:53:14 -07:00
|
|
|
button-volume-up {
|
2021-07-12 15:37:32 +02:00
|
|
|
label = "Volume Up";
|
2023-05-29 14:46:58 +02:00
|
|
|
gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
|
2021-07-12 15:37:32 +02:00
|
|
|
linux,code = <KEY_VOLUMEUP>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
usb_id: usb-id {
|
|
|
|
compatible = "linux,extcon-usb-gpio";
|
2023-07-24 12:39:13 +02:00
|
|
|
id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
|
2021-07-12 15:37:32 +02:00
|
|
|
pinctrl-names = "default";
|
|
|
|
pinctrl-0 = <&usb_id_default>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2021-07-12 15:37:35 +02:00
|
|
|
&blsp_i2c2 {
|
|
|
|
status = "okay";
|
|
|
|
|
|
|
|
imu@68 {
|
|
|
|
compatible = "invensense,mpu6880";
|
|
|
|
reg = <0x68>;
|
|
|
|
|
2023-05-29 14:46:58 +02:00
|
|
|
interrupt-parent = <&tlmm>;
|
2021-07-12 15:37:35 +02:00
|
|
|
interrupts = <115 IRQ_TYPE_EDGE_RISING>;
|
|
|
|
|
|
|
|
vdd-supply = <&pm8916_l17>;
|
|
|
|
vddio-supply = <&pm8916_l6>;
|
|
|
|
|
|
|
|
pinctrl-names = "default";
|
|
|
|
pinctrl-0 = <&imu_default>;
|
|
|
|
|
|
|
|
mount-matrix = "1", "0", "0",
|
|
|
|
"0", "-1", "0",
|
|
|
|
"0", "0", "1";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2021-07-12 15:37:33 +02:00
|
|
|
&blsp_i2c5 {
|
|
|
|
status = "okay";
|
|
|
|
|
|
|
|
touchscreen@38 {
|
|
|
|
/* Likely some other model but works just fine with this one */
|
|
|
|
compatible = "edt,edt-ft5506";
|
|
|
|
reg = <0x38>;
|
|
|
|
|
2023-05-29 14:46:58 +02:00
|
|
|
interrupt-parent = <&tlmm>;
|
2021-07-12 15:37:33 +02:00
|
|
|
interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
|
|
|
|
|
2023-05-29 14:46:58 +02:00
|
|
|
reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
|
2021-07-12 15:37:33 +02:00
|
|
|
|
|
|
|
vcc-supply = <&pm8916_l17>;
|
|
|
|
iovcc-supply = <&pm8916_l6>;
|
|
|
|
|
|
|
|
touchscreen-size-x = <720>;
|
|
|
|
touchscreen-size-y = <1280>;
|
|
|
|
|
|
|
|
pinctrl-names = "default";
|
|
|
|
pinctrl-0 = <&touchscreen_default>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2021-07-12 15:37:34 +02:00
|
|
|
&blsp_i2c6 {
|
|
|
|
status = "okay";
|
|
|
|
|
|
|
|
led-controller@45 {
|
|
|
|
compatible = "awinic,aw2013";
|
|
|
|
reg = <0x45>;
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <0>;
|
|
|
|
|
|
|
|
vcc-supply = <&pm8916_l16>;
|
2023-12-04 10:46:11 +01:00
|
|
|
vio-supply = <&pm8916_l5>;
|
2021-07-12 15:37:34 +02:00
|
|
|
|
|
|
|
led@0 {
|
|
|
|
reg = <0>;
|
|
|
|
led-max-microamp = <15000>;
|
|
|
|
function = LED_FUNCTION_INDICATOR;
|
|
|
|
color = <LED_COLOR_ID_RED>;
|
|
|
|
};
|
|
|
|
|
|
|
|
led@1 {
|
|
|
|
reg = <1>;
|
|
|
|
led-max-microamp = <15000>;
|
|
|
|
function = LED_FUNCTION_INDICATOR;
|
|
|
|
color = <LED_COLOR_ID_GREEN>;
|
|
|
|
};
|
|
|
|
|
|
|
|
led@2 {
|
|
|
|
reg = <2>;
|
|
|
|
led-max-microamp = <15000>;
|
|
|
|
function = LED_FUNCTION_INDICATOR;
|
|
|
|
color = <LED_COLOR_ID_BLUE>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-05-29 14:46:59 +02:00
|
|
|
&blsp_uart2 {
|
2021-07-12 15:37:32 +02:00
|
|
|
status = "okay";
|
2025-04-22 13:03:50 +02:00
|
|
|
pinctrl-0 = <&blsp_uart2_console_default>;
|
|
|
|
pinctrl-1 = <&blsp_uart2_console_sleep>;
|
2025-04-22 13:03:48 +02:00
|
|
|
pinctrl-names = "default", "sleep";
|
2021-07-12 15:37:32 +02:00
|
|
|
};
|
|
|
|
|
2023-10-03 15:18:25 +02:00
|
|
|
&mpss_mem {
|
|
|
|
reg = <0x0 0x86800000 0x0 0x5100000>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&pm8916_codec {
|
|
|
|
qcom,micbias1-ext-cap;
|
|
|
|
qcom,micbias-lvl = <2800>;
|
|
|
|
qcom,mbhc-vthreshold-low = <75 100 120 180 500>;
|
|
|
|
qcom,mbhc-vthreshold-high = <75 100 120 180 500>;
|
|
|
|
qcom,hphl-jack-type-normally-open;
|
|
|
|
};
|
|
|
|
|
2021-07-12 15:37:32 +02:00
|
|
|
&pm8916_resin {
|
|
|
|
status = "okay";
|
|
|
|
linux,code = <KEY_VOLUMEDOWN>;
|
|
|
|
};
|
|
|
|
|
2023-05-17 20:48:46 +02:00
|
|
|
&pm8916_rpm_regulators {
|
|
|
|
pm8916_l16: l16 {
|
|
|
|
/*
|
|
|
|
* L16 is only used for AW2013 which is fine with 2.5-3.3V.
|
|
|
|
* Use the recommended typical voltage of 2.8V as minimum.
|
|
|
|
*/
|
|
|
|
regulator-min-microvolt = <2800000>;
|
|
|
|
regulator-max-microvolt = <3300000>;
|
|
|
|
};
|
|
|
|
|
|
|
|
pm8916_l17: l17 {
|
|
|
|
regulator-min-microvolt = <2850000>;
|
|
|
|
regulator-max-microvolt = <2850000>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2021-07-12 15:37:32 +02:00
|
|
|
&pm8916_vib {
|
|
|
|
status = "okay";
|
|
|
|
};
|
|
|
|
|
|
|
|
&sdhc_1 {
|
|
|
|
status = "okay";
|
|
|
|
};
|
|
|
|
|
|
|
|
&sdhc_2 {
|
|
|
|
status = "okay";
|
|
|
|
non-removable;
|
|
|
|
};
|
|
|
|
|
2023-10-03 15:18:25 +02:00
|
|
|
&sound {
|
|
|
|
/*
|
|
|
|
* Provide widgets/pin-switches to allow enabling speaker and headphones
|
|
|
|
* separately. Both are routed via the HPH_L/HPH_R pins of the codec.
|
|
|
|
*/
|
|
|
|
model = "wt88047";
|
|
|
|
widgets =
|
|
|
|
"Speaker", "Speaker",
|
|
|
|
"Headphone", "Headphones";
|
|
|
|
pin-switches = "Speaker", "Headphones";
|
|
|
|
audio-routing =
|
|
|
|
"Speaker", "Speaker Amp OUTL",
|
|
|
|
"Speaker", "Speaker Amp OUTR",
|
|
|
|
"Speaker Amp INL", "HPH_R",
|
|
|
|
"Speaker Amp INR", "HPH_R",
|
|
|
|
"Headphones", "Headphones Switch OUTL",
|
|
|
|
"Headphones", "Headphones Switch OUTR",
|
|
|
|
"Headphones Switch INL", "HPH_L",
|
|
|
|
"Headphones Switch INR", "HPH_R",
|
|
|
|
"AMIC1", "MIC BIAS External1",
|
|
|
|
"AMIC2", "MIC BIAS Internal2";
|
|
|
|
aux-devs = <&speaker_amp>, <&headphones_switch>;
|
|
|
|
};
|
|
|
|
|
2021-07-12 15:37:32 +02:00
|
|
|
&usb {
|
|
|
|
status = "okay";
|
|
|
|
extcon = <&usb_id>, <&usb_id>;
|
|
|
|
};
|
|
|
|
|
|
|
|
&usb_hs_phy {
|
|
|
|
extcon = <&usb_id>;
|
|
|
|
};
|
|
|
|
|
2023-09-11 19:41:43 +02:00
|
|
|
&venus {
|
|
|
|
status = "okay";
|
|
|
|
};
|
|
|
|
|
2023-09-11 19:41:49 +02:00
|
|
|
&venus_mem {
|
|
|
|
status = "okay";
|
|
|
|
};
|
|
|
|
|
arm64: dts: qcom: msm8916: Move WCN compatible to boards
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
2023-03-09 10:14:52 +01:00
|
|
|
&wcnss {
|
|
|
|
status = "okay";
|
|
|
|
};
|
|
|
|
|
|
|
|
&wcnss_iris {
|
|
|
|
compatible = "qcom,wcn3620";
|
|
|
|
};
|
|
|
|
|
2023-09-11 19:41:49 +02:00
|
|
|
&wcnss_mem {
|
|
|
|
status = "okay";
|
|
|
|
};
|
|
|
|
|
2023-05-29 14:46:58 +02:00
|
|
|
&tlmm {
|
2022-11-28 05:16:32 +00:00
|
|
|
camera_flash_default: camera-flash-default-state {
|
|
|
|
pins = "gpio31", "gpio32";
|
|
|
|
function = "gpio";
|
|
|
|
|
|
|
|
drive-strength = <2>;
|
|
|
|
bias-disable;
|
|
|
|
};
|
|
|
|
|
2022-10-23 20:23:56 -04:00
|
|
|
gpio_keys_default: gpio-keys-default-state {
|
2021-07-12 15:37:32 +02:00
|
|
|
pins = "gpio107";
|
|
|
|
function = "gpio";
|
|
|
|
|
|
|
|
drive-strength = <2>;
|
|
|
|
bias-pull-up;
|
|
|
|
};
|
|
|
|
|
2023-10-03 15:18:25 +02:00
|
|
|
headphones_switch_default: headphones-switch-default-state {
|
|
|
|
pins = "gpio8";
|
|
|
|
function = "gpio";
|
|
|
|
drive-strength = <2>;
|
|
|
|
bias-disable;
|
|
|
|
};
|
|
|
|
|
2022-10-23 20:23:56 -04:00
|
|
|
imu_default: imu-default-state {
|
2021-07-12 15:37:35 +02:00
|
|
|
pins = "gpio115";
|
|
|
|
function = "gpio";
|
|
|
|
|
|
|
|
drive-strength = <2>;
|
|
|
|
bias-disable;
|
|
|
|
};
|
|
|
|
|
2023-10-03 15:18:25 +02:00
|
|
|
speaker_amp_default: speaker-amp-default-state {
|
|
|
|
pins = "gpio117";
|
|
|
|
function = "gpio";
|
|
|
|
drive-strength = <2>;
|
|
|
|
bias-disable;
|
|
|
|
};
|
|
|
|
|
2022-10-23 20:23:56 -04:00
|
|
|
touchscreen_default: touchscreen-default-state {
|
|
|
|
touchscreen-pins {
|
|
|
|
pins = "gpio13";
|
|
|
|
function = "gpio";
|
2021-07-12 15:37:33 +02:00
|
|
|
|
2022-10-23 20:23:56 -04:00
|
|
|
drive-strength = <2>;
|
|
|
|
bias-pull-up;
|
|
|
|
};
|
|
|
|
reset-pins {
|
2021-07-12 15:37:33 +02:00
|
|
|
pins = "gpio12";
|
|
|
|
function = "gpio";
|
|
|
|
|
|
|
|
drive-strength = <2>;
|
|
|
|
bias-disable;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2022-10-23 20:23:56 -04:00
|
|
|
usb_id_default: usb-id-default-state {
|
2021-07-12 15:37:32 +02:00
|
|
|
pins = "gpio110";
|
|
|
|
function = "gpio";
|
|
|
|
|
|
|
|
drive-strength = <8>;
|
|
|
|
bias-pull-up;
|
|
|
|
};
|
|
|
|
};
|