Skip to content
Open
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
263 changes: 263 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,263 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2022, Gianluca Boiano <[email protected]>
*/

/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>;
};
};

&blsp_i2c1 {
status = "okay";

touchscreen@1 {
compatible = "novatek,nt36672a-ts";
reg = <0x1>;
iovcc-supply = <&vreg_l11a_1p8>;
interrupts-extended = <&tlmm 67 IRQ_TYPE_EDGE_RISING>;
pinctrl-0 = <&ts_active>;
pinctrl-names = "default";
reset-gpios = <&tlmm 66 GPIO_ACTIVE_LOW>;
touchscreen-size-x = <1080>;
touchscreen-size-y = <2280>;
};
};

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

status = "okay";
};

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

&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;
};
};

&rpm_requests {
regulators-0 {
/* 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 {
/* 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_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 */

ts_active: ts-active-state {
pins = "gpio66", "gpio67";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
};
Loading