Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Documentation/devicetree/bindings/arm/qcom.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
4 changes: 4 additions & 0 deletions arch/arm64/boot/dts/qcom/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,11 @@ 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) += 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

Expand Down
333 changes: 333 additions & 0 deletions arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,333 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2022, Gianluca Boiano <morf3089@gmail.com>
*/

/dts-v1/;

#include "sdm636.dtsi"
#include "sdm660-xiaomi-common.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>

/ {
model = "Xiaomi Redmi Note 6 Pro";
compatible = "xiaomi,tulip", "qcom,sdm636";
chassis-type = "handset";

battery: battery {
compatible = "simple-battery";
charge-full-design-microamp-hours = <4000000>;
voltage-min-design-microvolt = <3400000>;
voltage-max-design-microvolt = <4408000>;
};

reserved-memory {
ramoops@a0000000 {
compatible = "ramoops";
reg = <0x0 0xa0000000 0x0 0x400000>;
console-size = <0x20000>;
record-size = <0x20000>;
ftrace-size = <0x0>;
pmsg-size = <0x20000>;
};
};
};

&framebuffer0 {
width = <1080>;
height = <2280>;
stride = <(1080 * 4)>;

status = "okay";
};

&gpio_hall_sensor {
status = "okay";
};

&pm660_charger {
monitored-battery = <&battery>;

status = "okay";
};

&pm660l_lpg {
#address-cells = <1>;
#size-cells = <0>;
qcom,power-source = <1>;

status = "okay";

led@3 {
reg = <3>;
color = <LED_COLOR_ID_WHITE>;
function = LED_FUNCTION_STATUS;
};
};

&pm660l_wled {
status = "okay";
};

&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>;
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 {
regulator-min-microvolt = <1125000>;
regulator-max-microvolt = <1125000>;
regulator-enable-ramp-delay = <200>;
};

vreg_s2b_1p05: s2 {
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
regulator-enable-ramp-delay = <200>;
};

/* LDOs */
vreg_l1b_0p925: l1 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <925000>;
regulator-enable-ramp-delay = <250>;
regulator-allow-set-load;
};

/* SDHCI 3.3V signal doesn't seem to be supported. */
vreg_l2b_2p95: l2 {
regulator-min-microvolt = <1648000>;
regulator-max-microvolt = <3100000>;
regulator-enable-ramp-delay = <250>;
regulator-allow-set-load;
};

vreg_l3b_3p3: l3 {
regulator-min-microvolt = <1710000>;
regulator-max-microvolt = <3600000>;
regulator-enable-ramp-delay = <250>;
regulator-allow-set-load;
regulator-always-on;
};

vreg_l4b_2p95: l4 {
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <2950000>;
regulator-enable-ramp-delay = <250>;

regulator-min-microamp = <200>;
regulator-max-microamp = <600000>;
regulator-system-load = <570000>;
regulator-allow-set-load;
};

/*
* Downstream specifies a range of 1721-3600mV,
* but the only assigned consumers are SDHCI2 VMMC
* and Coresight QPDI that both request pinned 2.95V.
* Tighten the range to 1.8-3.328 (closest to 3.3) to
* make the mmc driver happy.
*/
vreg_l5b_2p95: l5 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3328000>;
regulator-enable-ramp-delay = <250>;
regulator-allow-set-load;
};

vreg_l7b_3p125: l7 {
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3125000>;
regulator-enable-ramp-delay = <250>;
};

vreg_l8b_3p3: l8 {
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <250>;
};

vreg_bob: bob {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
regulator-enable-ramp-delay = <500>;
};
};

regulators-1 {
compatible = "qcom,rpm-pm660-regulators";

vdd_s1-supply = <&vph_pwr>;
vdd_s2-supply = <&vph_pwr>;
vdd_s3-supply = <&vph_pwr>;
vdd_s4-supply = <&vph_pwr>;
vdd_s5-supply = <&vph_pwr>;
vdd_s6-supply = <&vph_pwr>;

vdd_l1_l6_l7-supply = <&vreg_s5a_1p35>;
vdd_l2_l3-supply = <&vreg_s2b_1p05>;
vdd_l5-supply = <&vreg_s2b_1p05>;
vdd_l8_l9_l10_l11_l12_l13_l14-supply = <&vreg_s4a_2p04>;
vdd_l15_l16_l17_l18_l19-supply = <&vreg_bob>;

/*
* S1A (FTAPC0), S2A (FTAPC1), S3A (HFAPC1) are managed
* by the Core Power Reduction hardened (CPRh) and the
* Operating State Manager (OSM) HW automatically.
*/

vreg_s4a_2p04: s4 {
regulator-min-microvolt = <1805000>;
regulator-max-microvolt = <2040000>;
regulator-enable-ramp-delay = <200>;
regulator-always-on;
};

vreg_s5a_1p35: s5 {
regulator-min-microvolt = <1224000>;
regulator-max-microvolt = <1350000>;
regulator-enable-ramp-delay = <200>;
};

vreg_s6a_0p87: s6 {
regulator-min-microvolt = <504000>;
regulator-max-microvolt = <992000>;
regulator-enable-ramp-delay = <150>;
};

/* LDOs */
vreg_l1a_1p225: l1 {
regulator-min-microvolt = <1150000>;
regulator-max-microvolt = <1250000>;
regulator-enable-ramp-delay = <250>;
regulator-allow-set-load;
};

vreg_l2a_1p0: l2 {
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1010000>;
regulator-enable-ramp-delay = <250>;
};

vreg_l3a_1p0: l3 {
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1010000>;
regulator-enable-ramp-delay = <250>;
};

vreg_l5a_0p848: l5 {
regulator-min-microvolt = <525000>;
regulator-max-microvolt = <950000>;
regulator-enable-ramp-delay = <250>;
};

vreg_l6a_1p3: l6 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1370000>;
regulator-allow-set-load;
regulator-enable-ramp-delay = <250>;
};

vreg_l7a_1p2: l7 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-enable-ramp-delay = <250>;
};

vreg_l8a_1p8: l8 {
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <1900000>;
regulator-enable-ramp-delay = <250>;
regulator-system-load = <325000>;
regulator-allow-set-load;
};

vreg_l9a_1p8: l9 {
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <1900000>;
regulator-enable-ramp-delay = <250>;
regulator-allow-set-load;
};

vreg_l10a_1p8: l10 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
regulator-enable-ramp-delay = <250>;
regulator-allow-set-load;
regulator-system-load = <14000>;
};

vreg_l11a_1p8: l11 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
regulator-enable-ramp-delay = <250>;
};

vreg_l12a_1p8: l12 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
regulator-enable-ramp-delay = <250>;
};

/* This gives power to the LPDDR4: never turn it off! */
vreg_l13a_1p8: l13 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
regulator-enable-ramp-delay = <250>;
regulator-boot-on;
regulator-always-on;
};

vreg_l14a_1p8: l14 {
regulator-min-microvolt = <1710000>;
regulator-max-microvolt = <1900000>;
regulator-enable-ramp-delay = <250>;
};

vreg_l15a_1p8: l15 {
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2950000>;
regulator-enable-ramp-delay = <250>;
};

vreg_l16a_2p7: l16 {
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <250>;
regulator-always-on;
};

vreg_l17a_1p8: l17 {
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2950000>;
regulator-enable-ramp-delay = <250>;
};

vreg_l19a_3p3: l19 {
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3400000>;
regulator-enable-ramp-delay = <250>;
regulator-allow-set-load;
};
};
};

&sdhc_2 {
status = "okay";
};

&tlmm {
gpio-reserved-ranges = <8 4>; /* Fingerprint SPI */
};
Loading