Skip to contentSkip to conversation

arm64: dts: qcom: add support for Xiaomi SDM636/SDM660 devices

PATCH In review Gianluca Boiano 5 participants 28 messages Jan 20 – Jan 28

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover arm64: dts: qcom: add support for Xiaomi SDM636/SDM660 devices

This series adds device tree support for several Xiaomi smartphones based on Qualcomm SDM636 and SDM660 SoCs:

- Xiaomi Redmi Note 6 Pro (tulip) - SDM636
- Xiaomi Redmi Note 5 Pro (whyred) - SDM636
- Xiaomi Mi A2 (jasmine) - SDM660
- Xiaomi Mi 8 Lite (platina) - SDM660

It also refactors the existing Xiaomi Redmi Note 7 (lavender) device tree to use a new common include file, reducing code duplication across the family.

All devices support:
- Booting to a framebuffer console
- USB in peripheral mode
- Battery monitoring and charging
- WiFi and Bluetooth (wcn3990)

Some devices additionally support:
- Hall effect sensor (tulip, whyred, platina)
- Touchscreen (whyred, jasmine, platina)
- Status LED (tulip, whyred)
- SD card (tulip, whyred, lavender)

Tested on tulip.

Gianluca Boiano (7):
dt-bindings: arm: qcom: add Xiaomi SDM636/SDM660 devices
arm64: dts: qcom: sdm660: add common Xiaomi SDM636/SDM660 include file
arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD
settings
arm64: dts: qcom: add device tree for Xiaomi Redmi Note 6 Pro (tulip)
arm64: dts: qcom: add device tree for Xiaomi Redmi Note 5 Pro (whyred)
arm64: dts: qcom: add device tree for Xiaomi Mi A2 (jasmine)
arm64: dts: qcom: add device tree for Xiaomi Mi 8 Lite (platina)

 .../devicetree/bindings/arm/qcom.yaml         |   4 +
 arch/arm64/boot/dts/qcom/Makefile             |   4 +
 .../boot/dts/qcom/sdm636-xiaomi-tulip.dts     | 333 ++++++++++++++++
 .../boot/dts/qcom/sdm636-xiaomi-whyred.dts    | 374 ++++++++++++++++++
 .../boot/dts/qcom/sdm660-xiaomi-common.dtsi   | 214 ++++++++++
 .../boot/dts/qcom/sdm660-xiaomi-jasmine.dts   | 333 ++++++++++++++++
 .../boot/dts/qcom/sdm660-xiaomi-lavender.dts  | 144 +------
 .../boot/dts/qcom/sdm660-xiaomi-platina.dts   | 364 +++++++++++++++++
 8 files changed, 1634 insertions(+), 136 deletions(-)
 create mode 100644 arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts
 create mode 100644 arch/arm64/boot/dts/qcom/sdm636-xiaomi-whyred.dts
 create mode 100644 arch/arm64/boot/dts/qcom/sdm660-xiaomi-common.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/sdm660-xiaomi-jasmine.dts
 create mode 100644 arch/arm64/boot/dts/qcom/sdm660-xiaomi-platina.dts

base-commit: 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7

Signature · 1 line
2.52.0
#1 lore raw

PATCH 1/7 dt-bindings: arm: qcom: add Xiaomi SDM636/SDM660 devices

Add device tree bindings for:
- Xiaomi Redmi Note 6 Pro (tulip) - SDM636
- Xiaomi Redmi Note 5 Pro (whyred) - SDM636
- Xiaomi Mi A2 (jasmine) - SDM660
- Xiaomi Mi 8 Lite (platina) - SDM660

These are Android-based smartphones that can boot mainline Linux with simple-framebuffer and USB support.

---
 Documentation/devicetree/bindings/arm/qcom.yaml | 4 ++++
 1 file changed, 4 insertions(+)
Documentation/devicetree/bindings/arm/qcom.yaml +4 -0
index d84bd3bca201..87562ec0b170 100644
@@ -819,11 +819,15 @@ properties:
       - items:
           - enum:
               - sony,mermaid-row
+              - xiaomi,tulip
+              - xiaomi,whyred
           - const: qcom,sdm636
 
       - items:
           - enum:
+              - xiaomi,jasmine
               - xiaomi,lavender
+              - xiaomi,platina
           - const: qcom,sdm660
 
       - items:
Signature · 1 line
2.52.0
Acked-by on v1 1/7
#2 lore raw

Re: [PATCH 1/7] dt-bindings: arm: qcom: add Xiaomi SDM636/SDM660 devices

Quoted 6 lines · Gianluca Boiano

Add device tree bindings for:
- Xiaomi Redmi Note 6 Pro (tulip) - SDM636
- Xiaomi Redmi Note 5 Pro (whyred) - SDM636
- Xiaomi Mi A2 (jasmine) - SDM660
- Xiaomi Mi 8 Lite (platina) - SDM660

Quoted 7 lines

These are Android-based smartphones that can boot mainline Linux with simple-framebuffer and USB support.

---
 Documentation/devicetree/bindings/arm/qcom.yaml | 4 ++++
 1 file changed, 4 insertions(+)

Best regards,
Krzysztof

#3 lore raw

PATCH 2/7 arm64: dts: qcom: sdm660: add common Xiaomi SDM636/SDM660 include file

In reply to Gianluca Boiano

Create a shared device tree include file for Xiaomi smartphones and tablets based on Qualcomm SDM636/SDM660 SoCs. This reduces code duplication when adding new Xiaomi devices and ensures consistent configuration across the family.

The common dtsi includes:
- PM660/PM660L PMIC configuration with volume/power buttons
- Serial console (blsp1_uart2, blsp2_uart1)
- Hall effect sensor (disabled by default)
- USB (qusb2phy0, usb3) in peripheral mode
- SD card (sdhc_2) pinctrl and supplies
- eMMC (sdhc_1) with HS400 support
- Backlight (pm660l_wled)
- Framebuffer memory reservation
- WiFi (wcn3990)
- Bluetooth (wcn3990)

Also refactor sdm660-xiaomi-lavender.dts to use the new common include, removing duplicated code.

---
 .../boot/dts/qcom/sdm660-xiaomi-common.dtsi   | 214 ++++++++++++++++++
 .../boot/dts/qcom/sdm660-xiaomi-lavender.dts  | 144 +-----------
 2 files changed, 219 insertions(+), 139 deletions(-)
 create mode 100644 arch/arm64/boot/dts/qcom/sdm660-xiaomi-common.dtsi
arch/arm64/boot/dts/qcom/sdm660-xiaomi-common.dtsi new file +214 -0
new file mode 100644
index 000000000000..37ce675089fb
@@ -0,0 +1,214 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Common devicetree for Xiaomi SDM636/SDM660 devices
+ *
+ * Copyright (c) 2020, Alexey Minnekhanov <[email protected]>
+ * Copyright (c) 2022, Gianluca Boiano <[email protected]>
+ */
+
+#include "pm660.dtsi"
+#include "pm660l.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+	aliases {
+		serial0 = &blsp1_uart2;
+		serial1 = &blsp2_uart1;
+	};
+
+	chosen {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		stdout-path = "serial0:115200n8";
+
+		framebuffer0: framebuffer@9d400000 {
+			compatible = "simple-framebuffer";
+			memory-region = <&framebuffer_mem>;
+			/*
+			 * width/height/stride to be overridden
+			 * by individual device dts
+			 */
+			format = "a8r8g8b8";
+
+			status = "disabled";
+		};
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		pinctrl-0 = <&vol_up_default>;
+		pinctrl-names = "default";
+
+		key-volup {
+			label = "Volume Up";
+			gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_VOLUMEUP>;
+			debounce-interval = <15>;
+		};
+	};
+
+	gpio_hall_sensor: gpio-hall-sensor {
+		compatible = "gpio-keys";
+
+		pinctrl-0 = <&gpio_hall_sensor_default>;
+		pinctrl-names = "default";
+
+		status = "disabled";
+
+		event-hall {
+			label = "Hall Effect Sensor";
+			gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
+			linux,input-type = <EV_SW>;
+			linux,code = <SW_LID>;
+			linux,can-disable;
+			wakeup-source;
+		};
+	};
+
+	reserved-memory {
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		framebuffer_mem: memory@9d400000 {
+			reg = <0x0 0x9d400000 0x0 0x2400000>;
+			no-map;
+		};
+	};
+
+	vph_pwr: vph-pwr-regulator {
+		compatible = "regulator-fixed";
+		regulator-name = "vph_pwr";
+		regulator-min-microvolt = <3700000>;
+		regulator-max-microvolt = <3700000>;
+
+		regulator-always-on;
+		regulator-boot-on;
+	};
+
+};
+
+&blsp1_uart2 {
+	status = "okay";
+};
+
+&blsp2_uart1 {
+	status = "okay";
+
+	bluetooth {
+		compatible = "qcom,wcn3990-bt";
+		vddxo-supply = <&vreg_l9a_1p8>;
+		vddrf-supply = <&vreg_l6a_1p3>;
+		vddch0-supply = <&vreg_l19a_3p3>;
+		vddio-supply = <&vreg_l13a_1p8>;
+		max-speed = <3200000>;
+	};
+};
+
+&pm660l_gpios {
+	vol_up_default: vol-up-default-state {
+		pins = "gpio7";
+		function = PMIC_GPIO_FUNC_NORMAL;
+		bias-pull-up;
+		input-enable;
+		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
+	};
+};
+
+&pm660l_wled {
+	qcom,switching-freq = <800>;
+	qcom,current-limit-microamp = <20000>;
+	qcom,num-strings = <2>;
+};
+
+&pon_pwrkey {
+	status = "okay";
+};
+
+&pon_resin {
+	linux,code = <KEY_VOLUMEDOWN>;
+
+	status = "okay";
+};
+
+&qusb2phy0 {
+	vdd-supply = <&vreg_l1b_0p925>;
+	vdda-pll-supply = <&vreg_l10a_1p8>;
+	vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
+
+	status = "okay";
+};
+
+&sdc2_state_off {
+	sd-cd-pins {
+		pins = "gpio54";
+		function = "gpio";
+		bias-disable;
+		drive-strength = <2>;
+	};
+};
+
+&sdc2_state_on {
+	sd-cd-pins {
+		pins = "gpio54";
+		function = "gpio";
+		bias-pull-up;
+		drive-strength = <2>;
+	};
+};
+
+&sdhc_1 {
+	supports-cqe;
+
+	mmc-hs200-1_8v;
+	mmc-hs400-1_8v;
+	mmc-hs400-enhanced-strobe;
+
+	vmmc-supply = <&vreg_l4b_2p95>;
+	vqmmc-supply = <&vreg_l8a_1p8>;
+
+	status = "okay";
+};
+
+&sdhc_2 {
+	cd-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+
+	vmmc-supply = <&vreg_l5b_2p95>;
+	vqmmc-supply = <&vreg_l2b_2p95>;
+};
+
+&tlmm {
+	gpio_hall_sensor_default: gpio-hall-sensor-default-state {
+		pins = "gpio75";
+		function = "gpio";
+		drive-strength = <6>;
+		bias-pull-up;
+	};
+};
+
+&usb3 {
+	qcom,select-utmi-as-pipe-clk;
+
+	status = "okay";
+};
+
+&usb3_dwc3 {
+	maximum-speed = "high-speed";
+	phys = <&qusb2phy0>;
+	phy-names = "usb2-phy";
+	dr_mode = "peripheral";
+};
+
+&wifi {
+	vdd-0.8-cx-mx-supply = <&vreg_l5a_0p848>;
+	vdd-1.8-xo-supply = <&vreg_l9a_1p8>;
+	vdd-1.3-rfa-supply = <&vreg_l6a_1p3>;
+	vdd-3.3-ch0-supply = <&vreg_l19a_3p3>;
+
+	status = "okay";
+};
arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts +5 -139

169 lines not on this page · raw message

Signature · 1 line
2.52.0
#4 lore raw

Re: [PATCH 2/7] arm64: dts: qcom: sdm660: add common Xiaomi SDM636/SDM660 include file

Quoted 17 lines · Gianluca Boiano

Create a shared device tree include file for Xiaomi smartphones and tablets based on Qualcomm SDM636/SDM660 SoCs. This reduces code duplication when adding new Xiaomi devices and ensures consistent configuration across the family.

The common dtsi includes:
- PM660/PM660L PMIC configuration with volume/power buttons
- Serial console (blsp1_uart2, blsp2_uart1)
- Hall effect sensor (disabled by default)
- USB (qusb2phy0, usb3) in peripheral mode
- SD card (sdhc_2) pinctrl and supplies
- eMMC (sdhc_1) with HS400 support
- Backlight (pm660l_wled)
- Framebuffer memory reservation
- WiFi (wcn3990)
- Bluetooth (wcn3990)

Quoted 7 lines

Also refactor sdm660-xiaomi-lavender.dts to use the new common include, removing duplicated code.

---
 .../boot/dts/qcom/sdm660-xiaomi-common.dtsi   | 214 ++++++++++++++++++
 .../boot/dts/qcom/sdm660-xiaomi-lavender.dts  | 144 +-----------

Try adding this to your gitconfig:

[diff]
renameLimit = 999999
algorithm = histogram
renames = copies

Quoted 9 lines
 2 files changed, 219 insertions(+), 139 deletions(-)
 create mode 100644 arch/arm64/boot/dts/qcom/sdm660-xiaomi-common.dtsi
arch/arm64/boot/dts/qcom/sdm660-xiaomi-common.dtsi new file +0 -0
new file mode 100644
index 000000000000..37ce675089fb

arch/arm64/boot/dts/qcom/sdm660-xiaomi-common.dtsi line 6

Quoted 6 lines
arch/arm64/boot/dts/qcom/sdm660-xiaomi-common.dtsi new file +6 -0
@@ -0,0 +1,214 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Common devicetree for Xiaomi SDM636/SDM660 devices
+ *
+ * Copyright (c) 2020, Alexey Minnekhanov <[email protected]>
+ * Copyright (c) 2022, Gianluca Boiano <[email protected]>

At this point in the series, I'm not sure your copyright is valid since you're just shuffling code around. The year is odd too.

I noticed that Dang's copyright from the lavender dtsi is missing too

Konrad

#5 lore raw

Re: [PATCH 2/7] arm64: dts: qcom: sdm660: add common Xiaomi SDM636/SDM660 include file

Quoted 2 lines · Konrad Dybcio

Copyright year "2022" is odd for refactored code
Missing copyright attribution from Dang

You're right, I'll fix the copyright header in v2:

Copyright (c) 2020, Alexey Minnekhanov <[email protected]> Copyright (c) 2021, Dang Huynh <[email protected]> Copyright (c) 2026, Gianluca Boiano <[email protected]>

Gianluca

#6 lore raw

PATCH 3/7 arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

In reply to Gianluca Boiano

Fix regulator configurations to ensure stable operation:
- vreg_l2b_2p95: Increase max voltage from 2696mV to 3100mV to support proper SD card voltage signaling
- vreg_l3b_3p3: Add regulator-always-on to keep the regulator enabled during boot
- vreg_l10a_1p8: Add regulator-system-load of 14000uA for proper USB PHY PLL operation

Also enable the SD card controller (sdhc_2) which was left disabled.

---
 arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts +7 -1
index 6467cb4dfd16..9a6dda47941c 100644
@@ -82,7 +82,7 @@ vreg_l1b_0p925: l1 {
 		/* SDHCI 3.3V signal doesn't seem to be supported. */
 		vreg_l2b_2p95: l2 {
 			regulator-min-microvolt = <1648000>;
-			regulator-max-microvolt = <2696000>;
+			regulator-max-microvolt = <3100000>;
 			regulator-enable-ramp-delay = <250>;
 			regulator-allow-set-load;
 		};
@@ -92,6 +92,7 @@ vreg_l3b_3p3: l3 {
 			regulator-max-microvolt = <3300000>;
 			regulator-enable-ramp-delay = <250>;
 			regulator-allow-set-load;
+			regulator-always-on;
 		};
 
 		vreg_l4b_2p95: l4 {
@@ -239,6 +240,7 @@ vreg_l10a_1p8: l10 {
 			regulator-max-microvolt = <1950000>;
 			regulator-enable-ramp-delay = <250>;
 			regulator-allow-set-load;
+			regulator-system-load = <14000>;
 		};
 
 		vreg_l11a_1p8: l11 {
@@ -295,3 +297,7 @@ vreg_l19a_3p3: l19 {
 		};
 	};
 };
+
+&sdhc_2 {
+	status = "okay";
+};
Signature · 1 line
2.52.0
#7 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

Quoted 3 lines · Gianluca Boiano

Fix regulator configurations to ensure stable operation:
- vreg_l2b_2p95: Increase max voltage from 2696mV to 3100mV to support proper SD card voltage signaling

This makes sense

Quoted 2 lines

- vreg_l3b_3p3: Add regulator-always-on to keep the regulator enabled during boot

This may make sense, but you're not explaining the reason behind it so we can't know

Quoted 2 lines

- vreg_l10a_1p8: Add regulator-system-load of 14000uA for proper USB PHY PLL operation

The driver needs to be fixed instead, as it should perform a regulator_set_load()

Konrad

#8 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

Quoted 1 line · Konrad Dybcio

Why regulator-always-on for l3b?

This regulator powers the touchscreen. Without always-on, display initialization fails during boot. This matches downstream behavior. I can add a comment explaining this if preferred.

Quoted 1 line

Why isn't sdhc_2 enabled globally in common?

jasmine and platina don't have SD card slots, so enabling sdhc_2 globally would be incorrect. Only tulip, whyred, and lavender have SD card support.

Gianluca

#9 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

Quoted 6 lines · Gianluca Boiano
Quoted 1 line · Konrad Dybcio

Why regulator-always-on for l3b?

This regulator powers the touchscreen. Without always-on, display initialization fails during boot. This matches downstream behavior. I can add a comment explaining this if preferred.

Is there a chance it simply needs to be power sequenced in a specific order vs the display itself? (seed drm_panel_add_follower())

Quoted 4 lines
Quoted 1 line

Why isn't sdhc_2 enabled globally in common?

jasmine and platina don't have SD card slots, so enabling sdhc_2 globally would be incorrect. Only tulip, whyred, and lavender have SD card support.

I overlooked that, thanks

Konrad

#10 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

Quoted 11 lines · Konrad Dybcio
Quoted 6 lines · Gianluca Boiano
Quoted 1 line · Konrad Dybcio

Why regulator-always-on for l3b?

This regulator powers the touchscreen. Without always-on, display initialization fails during boot. This matches downstream behavior. I can add a comment explaining this if preferred.

Is there a chance it simply needs to be power sequenced in a specific order vs the display itself? (seed drm_panel_add_follower())

According to my schematics for e.g lavender, vreg_l3b_3p3 does not power anything directly controlled by HLOS (Linux), it seems to be connected to p-sensor only, and goes to bottom board.

The change is done by vendor (Xiaomi) and as far as I remember is there for every xiaomi-sdm660 device [1].

I'm guessing source for this change is [2] and this patch lacks my sign-off and explanation.

Does this work now as is without reordering vreg_bob to the top of the regulators list though? It did not work in this form previously.

[1] https://github.com/MiCode/Xiaomi_Kernel_OpenSource/commit/b16ba644a26986cc4cc3cf526eb497b9fa91a043
[2] https://github.com/sdm660-mainline/linux/commit/d54c8cfe3d76fa309b7e71fce1973176bdc095dd

--
Regards,
Alexey Minnekhanov

#11 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

Quoted 13 lines · Alexey Minnekhanov
Quoted 11 lines · Konrad Dybcio
Quoted 6 lines · Gianluca Boiano
Quoted 1 line · Konrad Dybcio

Why regulator-always-on for l3b?

This regulator powers the touchscreen. Without always-on, display initialization fails during boot. This matches downstream behavior. I can add a comment explaining this if preferred.

Is there a chance it simply needs to be power sequenced in a specific order vs the display itself? (seed drm_panel_add_follower())

Quoted 6 lines

According to my schematics for e.g lavender, vreg_l3b_3p3 does not power anything directly controlled by HLOS (Linux), it seems to be connected to p-sensor only, and goes to bottom board.

The change is done by vendor (Xiaomi) and as far as I remember is there for every xiaomi-sdm660 device [1].

I wouldn't be too surprised, e.g. sdm845-samsung-starqtlechn has a fake supply hooked up to slpi, as it likely powers some sensors which are governed by it

Konrad

#12 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

In reply to Konrad Dybcio
Quoted 7 lines · Konrad Dybcio
Quoted 3 lines · Gianluca Boiano

Fix regulator configurations to ensure stable operation:
- vreg_l10a_1p8: Add regulator-system-load of 14000uA for proper USB PHY PLL operation

The driver needs to be fixed instead, as it should perform a regulator_set_load()

Also change done by me in [1] with more detailed explanation:

Since the commit f05ab10 ("arm64: dts: qcom: sdm660-lavender:
Add missing USB phy supply") previously untouched by Linux regulator l10a is now used, but it exposed a bug from initial porting: when booting with USB cable inserted, or booting without cable and inserting it later, board reboots.

Downstream vendor device tree has this:

	rpm-regulator-ldoa10 {
		status = "okay";
		pm660_l10: regulator-l10 {
			proxy-supply = <&pm660_l10>;
			qcom,proxy-consumer-enable;
			qcom,proxy-consumer-current = <14000>;
			regulator-min-microvolt = <1780000>;
			regulator-max-microvolt = <1950000>;
			status = "okay";
		};
	};

IIRC this qcom,proxy-consumer stuff is adding fake device that uses this regulator, but does nothing else except requesting specified voltage or current (in this case), until "real consumer" probes or something like that. The same can be achieved by simply adding regulator-system-load, and device stops rebooting when USB cable is inserted.

This is also needed for all xiaomi-sdm660 boards, but not e.g on sdm630-sony ones.

I'm thinking maybe it is better to have regulators in sdm660-xiaomi- common.dtsi after all. The setup is mostly the same for them.

[1] https://github.com/sdm660-mainline/linux/commit/7121e17ee284bb6026c25d3f643fd020fa959877

--
Regards,
Alexey Minnekhanov

#13 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

Quoted 10 lines · Alexey Minnekhanov
Quoted 7 lines · Konrad Dybcio
Quoted 3 lines · Gianluca Boiano

Fix regulator configurations to ensure stable operation:
- vreg_l10a_1p8: Add regulator-system-load of 14000uA for proper USB PHY PLL operation

The driver needs to be fixed instead, as it should perform a regulator_set_load()

Quoted 7 lines

Also change done by me in [1] with more detailed explanation:

Since the commit f05ab10 ("arm64: dts: qcom: sdm660-lavender:
Add missing USB phy supply") previously untouched by Linux regulator l10a is now used, but it exposed a bug from initial porting: when booting with USB cable inserted, or booting without cable and inserting it later, board reboots.

FYI this shouldn't be required with the upstream driver, I don't think the core calls .set_load(0) and RPM isn't notified of a current requirement change unless that happens (qcom_smd-regulator.c)

In the power grid, I see (current values representing the peak):

-- USB2
VDDA (3.1 V - vdda-phy-dpdm-supply) - 60mA
VDDA (1.8 V - vdda-pll-supply) - 30mA

VDD (?) - 11.4 mA
VDDA_DVDD (?) - 35 mA

-- USB3
VDDA (1.8 V) - 14 mA
VDDA_CORE - 68.6 mA

+Dmitry poked at 660 in the past

Konrad

#14 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

Quoted 32 lines · Konrad Dybcio
Quoted 10 lines · Alexey Minnekhanov
Quoted 7 lines · Konrad Dybcio
Quoted 3 lines · Gianluca Boiano

Fix regulator configurations to ensure stable operation:
- vreg_l10a_1p8: Add regulator-system-load of 14000uA for proper USB PHY PLL operation

The driver needs to be fixed instead, as it should perform a regulator_set_load()

Quoted 7 lines

Also change done by me in [1] with more detailed explanation:

Since the commit f05ab10 ("arm64: dts: qcom: sdm660-lavender:
Add missing USB phy supply") previously untouched by Linux regulator l10a is now used, but it exposed a bug from initial porting: when booting with USB cable inserted, or booting without cable and inserting it later, board reboots.

FYI this shouldn't be required with the upstream driver, I don't think the core calls .set_load(0) and RPM isn't notified of a current requirement change unless that happens (qcom_smd-regulator.c)

In the power grid, I see (current values representing the peak):

-- USB2
VDDA (3.1 V - vdda-phy-dpdm-supply) - 60mA
VDDA (1.8 V - vdda-pll-supply) - 30mA

VDD (?) - 11.4 mA
VDDA_DVDD (?) - 35 mA

Quoted 8 lines

-- USB3
VDDA (1.8 V) - 14 mA
VDDA_CORE - 68.6 mA

+Dmitry poked at 660 in the past

Konrad

This is not needed e.g on sdm630-sony-nile-pioneer, it's booting fine without system-load with USB cable inserted. Maybe IFC board doesn't require this too. Seems to be xiaomi specific thing again?

Alternative is to not touch L10A regulator (comment out vdda-pll-supply from qusb2phy0 node and face the "phy@c012000: 'vdda-pll-supply' is a required property" dtbs-check error again. Which we don't want to do of course. And schematics say that vreg_l10a_1p8 is connected to at least:
VDD_USB1_HS_1P8, VDD_USB2_HS_1P8, QFPROM_PRG, VDDA_APC1_CS_1P8, VDD_PLL2_1, VDD_PLL2_2.

--
Regards,
Alexey Minnekhanov

#15 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

Quoted 46 lines · Alexey Minnekhanov
Quoted 32 lines · Konrad Dybcio
Quoted 10 lines · Alexey Minnekhanov
Quoted 7 lines · Konrad Dybcio
Quoted 3 lines · Gianluca Boiano

Fix regulator configurations to ensure stable operation:
- vreg_l10a_1p8: Add regulator-system-load of 14000uA for proper USB PHY PLL operation

The driver needs to be fixed instead, as it should perform a regulator_set_load()

Quoted 7 lines

Also change done by me in [1] with more detailed explanation:

Since the commit f05ab10 ("arm64: dts: qcom: sdm660-lavender:
Add missing USB phy supply") previously untouched by Linux regulator l10a is now used, but it exposed a bug from initial porting: when booting with USB cable inserted, or booting without cable and inserting it later, board reboots.

FYI this shouldn't be required with the upstream driver, I don't think the core calls .set_load(0) and RPM isn't notified of a current requirement change unless that happens (qcom_smd-regulator.c)

In the power grid, I see (current values representing the peak):

-- USB2
VDDA (3.1 V - vdda-phy-dpdm-supply) - 60mA
VDDA (1.8 V - vdda-pll-supply) - 30mA

VDD (?) - 11.4 mA
VDDA_DVDD (?) - 35 mA

Quoted 8 lines

-- USB3
VDDA (1.8 V) - 14 mA
VDDA_CORE - 68.6 mA

+Dmitry poked at 660 in the past

Konrad

This is not needed e.g on sdm630-sony-nile-pioneer, it's booting fine without system-load with USB cable inserted. Maybe IFC board doesn't require this too. Seems to be xiaomi specific thing again?

Quoted 6 lines

Alternative is to not touch L10A regulator (comment out vdda-pll-supply from qusb2phy0 node and face the "phy@c012000: 'vdda-pll-supply' is a required property" dtbs-check error again. Which we don't want to do of course. And schematics say that vreg_l10a_1p8 is connected to at least:
VDD_USB1_HS_1P8, VDD_USB2_HS_1P8, QFPROM_PRG, VDDA_APC1_CS_1P8, VDD_PLL2_1, VDD_PLL2_2.

It might be that there is an issue because of it being used for APC1 too. I don't observe any issues on my IFC6560 board (where it is also connected to APC1).

I'd suggest adding a dummy fixed regulator node as L10A and documenting that it is not to be touched by Linux on this device). We do this for some other "system" regulators on other devices.

Signature · 2 lines
With best wishes
Dmitry
#16 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

Quoted 54 lines · Dmitry Baryshkov
Quoted 46 lines · Alexey Minnekhanov
Quoted 32 lines · Konrad Dybcio
Quoted 10 lines · Alexey Minnekhanov
Quoted 7 lines · Konrad Dybcio
Quoted 3 lines · Gianluca Boiano

Fix regulator configurations to ensure stable operation:
- vreg_l10a_1p8: Add regulator-system-load of 14000uA for proper USB PHY PLL operation

The driver needs to be fixed instead, as it should perform a regulator_set_load()

Quoted 7 lines

Also change done by me in [1] with more detailed explanation:

Since the commit f05ab10 ("arm64: dts: qcom: sdm660-lavender:
Add missing USB phy supply") previously untouched by Linux regulator l10a is now used, but it exposed a bug from initial porting: when booting with USB cable inserted, or booting without cable and inserting it later, board reboots.

FYI this shouldn't be required with the upstream driver, I don't think the core calls .set_load(0) and RPM isn't notified of a current requirement change unless that happens (qcom_smd-regulator.c)

In the power grid, I see (current values representing the peak):

-- USB2
VDDA (3.1 V - vdda-phy-dpdm-supply) - 60mA
VDDA (1.8 V - vdda-pll-supply) - 30mA

VDD (?) - 11.4 mA
VDDA_DVDD (?) - 35 mA

Quoted 8 lines

-- USB3
VDDA (1.8 V) - 14 mA
VDDA_CORE - 68.6 mA

+Dmitry poked at 660 in the past

Konrad

This is not needed e.g on sdm630-sony-nile-pioneer, it's booting fine without system-load with USB cable inserted. Maybe IFC board doesn't require this too. Seems to be xiaomi specific thing again?

Quoted 6 lines

Alternative is to not touch L10A regulator (comment out vdda-pll-supply from qusb2phy0 node and face the "phy@c012000: 'vdda-pll-supply' is a required property" dtbs-check error again. Which we don't want to do of course. And schematics say that vreg_l10a_1p8 is connected to at least:
VDD_USB1_HS_1P8, VDD_USB2_HS_1P8, QFPROM_PRG, VDDA_APC1_CS_1P8, VDD_PLL2_1, VDD_PLL2_2.

Quoted 3 lines

It might be that there is an issue because of it being used for APC1 too. I don't observe any issues on my IFC6560 board (where it is also connected to APC1).

Wait, what? The same line going to external ports and the CPU supply!?

Quoted 3 lines

I'd suggest adding a dummy fixed regulator node as L10A and documenting that it is not to be touched by Linux on this device). We do this for some other "system" regulators on other devices.

I think that system-load may be fitting, but it needs a comment

Konrad

#17 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

Quoted 56 lines · Konrad Dybcio
Quoted 54 lines · Dmitry Baryshkov
Quoted 52 lines · Alexey Minnekhanov
Quoted 32 lines · Konrad Dybcio
Quoted 10 lines · Alexey Minnekhanov
Quoted 7 lines · Konrad Dybcio
Quoted 3 lines · Gianluca Boiano

Fix regulator configurations to ensure stable operation:
- vreg_l10a_1p8: Add regulator-system-load of 14000uA for proper USB PHY PLL operation

The driver needs to be fixed instead, as it should perform a regulator_set_load()

Quoted 7 lines

Also change done by me in [1] with more detailed explanation:

Since the commit f05ab10 ("arm64: dts: qcom: sdm660-lavender:
Add missing USB phy supply") previously untouched by Linux regulator l10a is now used, but it exposed a bug from initial porting: when booting with USB cable inserted, or booting without cable and inserting it later, board reboots.

FYI this shouldn't be required with the upstream driver, I don't think the core calls .set_load(0) and RPM isn't notified of a current requirement change unless that happens (qcom_smd-regulator.c)

In the power grid, I see (current values representing the peak):

-- USB2
VDDA (3.1 V - vdda-phy-dpdm-supply) - 60mA
VDDA (1.8 V - vdda-pll-supply) - 30mA

VDD (?) - 11.4 mA
VDDA_DVDD (?) - 35 mA

Quoted 8 lines

-- USB3
VDDA (1.8 V) - 14 mA
VDDA_CORE - 68.6 mA

+Dmitry poked at 660 in the past

Konrad

This is not needed e.g on sdm630-sony-nile-pioneer, it's booting fine without system-load with USB cable inserted. Maybe IFC board doesn't require this too. Seems to be xiaomi specific thing again?

Alternative is to not touch L10A regulator (comment out vdda-pll-supply from qusb2phy0 node and face the "phy@c012000: 'vdda-pll-supply' is a required property" dtbs-check error again. Which we don't want to do of course. And schematics say that vreg_l10a_1p8 is connected to at least:
VDD_USB1_HS_1P8, VDD_USB2_HS_1P8, QFPROM_PRG, VDDA_APC1_CS_1P8, VDD_PLL2_1, VDD_PLL2_2.

Quoted 5 lines
Quoted 3 lines

It might be that there is an issue because of it being used for APC1 too. I don't observe any issues on my IFC6560 board (where it is also connected to APC1).

Wait, what? The same line going to external ports and the CPU supply!?

Yes

Quoted 6 lines
Quoted 4 lines

I'd suggest adding a dummy fixed regulator node as L10A and documenting that it is not to be touched by Linux on this device). We do this for some other "system" regulators on other devices.

I think that system-load may be fitting, but it needs a comment

I assume, it might be RPM killing access to the system regulator.

Signature · 2 lines
With best wishes
Dmitry
#18 lore raw

Re: [PATCH 3/7] arm64: dts: qcom: sdm660-xiaomi-lavender: fix regulator and SD settings

In reply to Gianluca Boiano
Quoted 9 lines · Gianluca Boiano

Fix regulator configurations to ensure stable operation:
- vreg_l2b_2p95: Increase max voltage from 2696mV to 3100mV to support proper SD card voltage signaling
- vreg_l3b_3p3: Add regulator-always-on to keep the regulator enabled during boot
- vreg_l10a_1p8: Add regulator-system-load of 14000uA for proper USB PHY PLL operation

Also enable the SD card controller (sdhc_2) which was left disabled.

I see the new -common.dtsi configures the cd-gpio and regulators, but doesn't enable it globally. Should it be done there?

Konrad

#19 lore raw

PATCH 4/7 arm64: dts: qcom: add device tree for Xiaomi Redmi Note 6 Pro (tulip)

In reply to Gianluca Boiano

Add initial device tree support for the Xiaomi Redmi Note 6 Pro (codename: tulip), a smartphone based on Qualcomm SDM636 SoC with 4GB RAM and a 6.26" 1080x2280 display.

This enables:
- Booting to a framebuffer console
- USB support
- Hall effect sensor
- Battery monitoring
- Charging (pm660_charger)
- Status LED (pm660l_lpg)

---
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../boot/dts/qcom/sdm636-xiaomi-tulip.dts     | 333 ++++++++++++++++++
 2 files changed, 334 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index 6f34d5ed331c..6168d204ca91 100644
@@ -243,6 +243,7 @@ dtb-$(CONFIG_ARCH_QCOM)	+= sdm630-sony-xperia-nile-voyager.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm632-fairphone-fp3.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm632-motorola-ocean.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm636-sony-xperia-ganges-mermaid.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= sdm636-xiaomi-tulip.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm660-xiaomi-lavender.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm670-google-sargo.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-db845c.dtb
arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +333 -0

333 lines not on this page · raw message

Signature · 1 line
2.52.0
#20 lore raw

Re: [PATCH 4/7] arm64: dts: qcom: add device tree for Xiaomi Redmi Note 6 Pro (tulip)

Quoted 14 lines · Gianluca Boiano

Add initial device tree support for the Xiaomi Redmi Note 6 Pro (codename: tulip), a smartphone based on Qualcomm SDM636 SoC with 4GB RAM and a 6.26" 1080x2280 display.

This enables:
- Booting to a framebuffer console
- USB support
- Hall effect sensor
- Battery monitoring
- Charging (pm660_charger)
- Status LED (pm660l_lpg)

---

[...]

arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts line 28

Quoted 4 lines
arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +4 -0
+	reserved-memory {
+		ramoops@a0000000 {
+			compatible = "ramoops";
+			reg = <0x0 0xa0000000 0x0 0x400000>;

This is almost the same as all others, excluding platina

If you think it's beneficial for your "ecosystem" (with e.g. a recovery or major custom ROM kernel), you can unify these definitions since it's all configurable anyway

Quoted 9 lines
arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +9 -0
+			console-size = <0x20000>;
+			record-size = <0x20000>;
+			ftrace-size = <0x0>;
+			pmsg-size = <0x20000>;
+		};
+	};
+};
+
+&framebuffer0 {

arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts line 47

Quoted 10 lines
arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +10 -0
+	width = <1080>;
+	height = <2280>;
+	stride = <(1080 * 4)>;
+
+	status = "okay";
+};
+
+&gpio_hall_sensor {
+	status = "okay";
+};

Seems like all of the devices except A2 use this definition, maybe flip it around

arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts line 53

Quoted 6 lines
arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +6 -0
+
+&pm660_charger {
+	monitored-battery = <&battery>;
+
+	status = "okay";
+};

This is present on all of them

[...]

Review

Quoted 3 lines

+&pm660l_wled {

(quoted diff) +2 -0
+	status = "okay";
+};

This seems to as well

Quoted 8 lines
arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +8 -0
+
+&rpm_requests {
+	regulators-0 {
+		compatible = "qcom,rpm-pm660l-regulators";
+
+		vdd_s1-supply = <&vph_pwr>;
+		vdd_s2-supply = <&vph_pwr>;
+		vdd_s3_s4-supply = <&vph_pwr>;

arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts line 89

Quoted 10 lines
arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +10 -0
+		vdd_s5-supply = <&vph_pwr>;
+		vdd_s6-supply = <&vph_pwr>;
+
+		vdd_l1_l9_l10-supply = <&vreg_s2b_1p05>;
+		vdd_l2-supply = <&vreg_bob>;
+		vdd_l3_l5_l7_l8-supply = <&vreg_bob>;
+		vdd_l4_l6-supply = <&vreg_bob>;
+		vdd_bob-supply = <&vph_pwr>;
+
+		vreg_s1b_1p125: s1 {

Please diff the regulator settings, they're likely mostly common

[...]

arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts line 333

Quoted 7 lines

+&sdhc_2 {

arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +6 -0
+	status = "okay";
+};
+
+&tlmm {
+	gpio-reserved-ranges = <8 4>; /* Fingerprint SPI */
+};

This setting is common to all of them too

Konrad

#21 lore raw

Re: [PATCH 4/7] arm64: dts: qcom: add device tree for Xiaomi Redmi Note 6 Pro (tulip)

Quoted 1 line · Konrad Dybcio

Consolidate ramoops, hall sensor, pm660_charger, pm660l_wled, regulators

Good suggestions. For v2 I will:

1. Move ramoops to common with default configuration
2. Enable hall sensor by default in common, disable in devices without it
3. Move pm660_charger and pm660l_wled enable to common
4. Move common gpio-reserved-ranges to common dtsi
5. Compare and consolidate regulator settings where identical

sdhc_2 status must remain per-device since jasmine/platina lack SD slots.

Thanks for the review!

Gianluca

#22 lore raw

Re: [PATCH 4/7] arm64: dts: qcom: add device tree for Xiaomi Redmi Note 6 Pro (tulip)

In reply to Konrad Dybcio
Quoted 17 lines · Konrad Dybcio
Quoted 14 lines · Gianluca Boiano

Add initial device tree support for the Xiaomi Redmi Note 6 Pro (codename: tulip), a smartphone based on Qualcomm SDM636 SoC with 4GB RAM and a 6.26" 1080x2280 display.

This enables:
- Booting to a framebuffer console
- USB support
- Hall effect sensor
- Battery monitoring
- Charging (pm660_charger)
- Status LED (pm660l_lpg)

---

Quoted 5 lines

Review

Quoted 3 lines

+&pm660l_wled {

(quoted diff) +2 -0
+	status = "okay";
+};

This seems to as well

There is a tablet named Mi PAD 4 (xiaomi-clover) which is not included in this series, but it uses separate backlight driver and does not use WLED.

Quoted 12 lines
Quoted 12 lines
arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +12 -0
+
+&rpm_requests {
+	regulators-0 {
+		compatible = "qcom,rpm-pm660l-regulators";
+
+		vdd_s1-supply = <&vph_pwr>;
+		vdd_s2-supply = <&vph_pwr>;
+		vdd_s3_s4-supply = <&vph_pwr>;
+		vdd_s5-supply = <&vph_pwr>;
+		vdd_s6-supply = <&vph_pwr>;
+
+		vdd_l1_l9_l10-supply = <&vreg_s2b_1p05>;
Quoted 9 lines

arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts line 89

Quoted 6 lines
arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +6 -0
+		vdd_l2-supply = <&vreg_bob>;
+		vdd_l3_l5_l7_l8-supply = <&vreg_bob>;
+		vdd_l4_l6-supply = <&vreg_bob>;
+		vdd_bob-supply = <&vph_pwr>;
+
+		vreg_s1b_1p125: s1 {

Please diff the regulator settings, they're likely mostly common

It should be doable IMO.

Quoted 6 lines

arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts line 333

Quoted 4 lines
arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts new file +4 -0
+
+&tlmm {
+	gpio-reserved-ranges = <8 4>; /* Fingerprint SPI */
+};

This setting is common to all of them too

Once again clover is exception here, all 3 variants of clover are using

     gpio-reserved-ranges = <0 4>;

I think it might be better to leave this setting to board files?

--
Regards,
Alexey Minnekhanov

#23 lore raw

Re: [PATCH 4/7] arm64: dts: qcom: add device tree for Xiaomi Redmi Note 6 Pro (tulip)

Quoted 16 lines · Alexey Minnekhanov
Quoted 15 lines · Konrad Dybcio
Quoted 14 lines · Gianluca Boiano

Add initial device tree support for the Xiaomi Redmi Note 6 Pro (codename: tulip), a smartphone based on Qualcomm SDM636 SoC with 4GB RAM and a 6.26" 1080x2280 display.

This enables:
- Booting to a framebuffer console
- USB support
- Hall effect sensor
- Battery monitoring
- Charging (pm660_charger)
- Status LED (pm660l_lpg)

---

[...]

Quoted 6 lines

Once again clover is exception here, all 3 variants of clover are using

     gpio-reserved-ranges = <0 4>;

I think it might be better to leave this setting to board files?

Sure

Konrad

#24 lore raw

PATCH 5/7 arm64: dts: qcom: add device tree for Xiaomi Redmi Note 5 Pro (whyred)

In reply to Gianluca Boiano

Add initial device tree support for the Xiaomi Redmi Note 5 Pro (codename: whyred), a smartphone based on Qualcomm SDM636 SoC with 4/6GB RAM and a 5.99" 1080x2160 display.

This enables:
- Booting to a framebuffer console
- USB support
- Hall effect sensor
- Touchscreen (Synaptics RMI4)
- Battery monitoring
- Charging (pm660_charger)
- Status LED (pm660l_lpg)

---
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../boot/dts/qcom/sdm636-xiaomi-whyred.dts    | 374 ++++++++++++++++++
 2 files changed, 375 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/sdm636-xiaomi-whyred.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index 6168d204ca91..a1cf067fdfeb 100644
@@ -244,6 +244,7 @@ dtb-$(CONFIG_ARCH_QCOM)	+= sdm632-fairphone-fp3.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm632-motorola-ocean.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm636-sony-xperia-ganges-mermaid.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm636-xiaomi-tulip.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= sdm636-xiaomi-whyred.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm660-xiaomi-lavender.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm670-google-sargo.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-db845c.dtb
arch/arm64/boot/dts/qcom/sdm636-xiaomi-whyred.dts new file +374 -0

374 lines not on this page · raw message

Signature · 1 line
2.52.0
#25 lore raw

PATCH 6/7 arm64: dts: qcom: add device tree for Xiaomi Mi A2 (jasmine)

In reply to Gianluca Boiano

Add initial device tree support for the Xiaomi Mi A2 (codename: jasmine), a smartphone based on Qualcomm SDM660 SoC with 4/6GB RAM and a 5.99" 1080x2160 display.

This enables:
- Booting to a framebuffer console
- USB support
- Touchscreen (Novatek NT36672A)
- Battery monitoring
- Charging (pm660_charger)

---
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../boot/dts/qcom/sdm660-xiaomi-jasmine.dts   | 333 ++++++++++++++++++
 2 files changed, 334 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/sdm660-xiaomi-jasmine.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index a1cf067fdfeb..8f7b66bee6be 100644
@@ -245,6 +245,7 @@ dtb-$(CONFIG_ARCH_QCOM)	+= sdm632-motorola-ocean.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm636-sony-xperia-ganges-mermaid.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm636-xiaomi-tulip.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm636-xiaomi-whyred.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= sdm660-xiaomi-jasmine.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm660-xiaomi-lavender.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm670-google-sargo.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-db845c.dtb
arch/arm64/boot/dts/qcom/sdm660-xiaomi-jasmine.dts new file +333 -0

333 lines not on this page · raw message

Signature · 1 line
2.52.0
#26 lore raw

PATCH 7/7 arm64: dts: qcom: add device tree for Xiaomi Mi 8 Lite (platina)

In reply to Gianluca Boiano

Add initial device tree support for the Xiaomi Mi 8 Lite (codename: platina), a smartphone based on Qualcomm SDM660 SoC with 4/6GB RAM and a 6.26" 1080x2280 display.

This enables:
- Booting to a framebuffer console
- USB support
- Hall effect sensor
- Touchscreen (Novatek NT36672A)
- Battery monitoring
- Charging (pm660_charger)

---
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 .../boot/dts/qcom/sdm660-xiaomi-platina.dts   | 364 ++++++++++++++++++
 2 files changed, 365 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/sdm660-xiaomi-platina.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index 8f7b66bee6be..d76e955b4144 100644
@@ -247,6 +247,7 @@ dtb-$(CONFIG_ARCH_QCOM)	+= sdm636-xiaomi-tulip.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm636-xiaomi-whyred.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm660-xiaomi-jasmine.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm660-xiaomi-lavender.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= sdm660-xiaomi-platina.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm670-google-sargo.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-db845c.dtb
 
arch/arm64/boot/dts/qcom/sdm660-xiaomi-platina.dts new file +364 -0

364 lines not on this page · raw message

Signature · 1 line
2.52.0
#27 lore raw

Re: [PATCH 0/7] arm64: dts: qcom: Add Xiaomi SDM636/SDM660 devices

In reply to Gianluca Boiano

Thanks everyone for the reviews!

v2 is in progress addressing:

- Konrad's consolidation suggestions (ramoops, hall sensor, pm660_charger, pm660l_wled, gpio-reserved-ranges moved to common dtsi)
- Fixed copyright attribution in common dtsi
- Added Co-developed-by for Alexey Minnekhanov's lavender regulator work
- Added comments explaining l3b regulator-always-on (touchscreen power)

Will send v2 after allowing time for any additional feedback on v1.

Gianluca