mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-31 22:23:05 +00:00

This commit introduces multiple hardware variants of Lenovo Vibe K5. - A6020a40 (msm8929-wingtech-wt82918hd) - A6020a46/A6020l36 (msm8939-wingtech-wt82918) - A6020a40 S616 H39 (msm8939-wingtech-wt82918hd) These devices are added with support for many features, notably: - Basic features like USB, mmc/sd storage, wifi, buttons, leds; - Accelerometer; - Touchscreen; - Sound and modem. Note that "HD" variant of K5 is based on msm8929 which is a lower bin of msm8939 SoC. A simple dtsi is added for this soc along with the new devices. Unfortunately, despite the heavy similarities, the combination of minor differences between variants make them incompatible between each other. Signed-off-by: Adam Słaboń <asaillen@protonmail.com> [Nikita: Minor cleanup, commit message] Signed-off-by: Nikita Travkin <nikita@trvn.ru> Link: https://lore.kernel.org/r/20240729-msm89xx-wingtech-init-v3-3-32c35476f098@trvn.ru Signed-off-by: Bjorn Andersson <andersson@kernel.org>
163 lines
3.6 KiB
Plaintext
163 lines
3.6 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* msm8929-pm8916.dtsi describes common properties (e.g. regulator connections)
|
|
* that apply to most devices that make use of the MSM8929 SoC and PM8916 PMIC.
|
|
* Many regulators have a fixed purpose in the original reference design and
|
|
* were rarely re-used for different purposes. Devices that deviate from the
|
|
* typical reference design should not make use of this include and instead add
|
|
* the necessary properties in the board-specific device tree.
|
|
*/
|
|
|
|
#include "msm8929.dtsi"
|
|
#include "pm8916.dtsi"
|
|
|
|
&mdss_dsi0 {
|
|
vdda-supply = <&pm8916_l2>;
|
|
vddio-supply = <&pm8916_l6>;
|
|
};
|
|
|
|
&mdss_dsi0_phy {
|
|
vddio-supply = <&pm8916_l6>;
|
|
};
|
|
|
|
&mdss_dsi1 {
|
|
vdda-supply = <&pm8916_l2>;
|
|
vddio-supply = <&pm8916_l6>;
|
|
};
|
|
|
|
&mdss_dsi1_phy {
|
|
vddio-supply = <&pm8916_l6>;
|
|
};
|
|
|
|
&mpss {
|
|
pll-supply = <&pm8916_l7>;
|
|
};
|
|
|
|
&pm8916_codec {
|
|
vdd-cdc-io-supply = <&pm8916_l5>;
|
|
vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
|
|
vdd-micbias-supply = <&pm8916_l13>;
|
|
};
|
|
|
|
&rpm_requests {
|
|
pm8916_rpm_regulators: regulators {
|
|
compatible = "qcom,rpm-pm8916-regulators";
|
|
vdd_l1_l2_l3-supply = <&pm8916_s3>;
|
|
vdd_l4_l5_l6-supply = <&pm8916_s4>;
|
|
vdd_l7-supply = <&pm8916_s4>;
|
|
|
|
/* pm8916_s1 is managed by rpmpd (MSM8939_VDDMDCX) */
|
|
/* pm8916_s2 is managed by rpmpd (MSM8939_VDDCX) */
|
|
pm8916_s3: s3 {
|
|
regulator-min-microvolt = <1250000>;
|
|
regulator-max-microvolt = <1350000>;
|
|
regulator-always-on; /* Needed for L2 */
|
|
};
|
|
pm8916_s4: s4 {
|
|
regulator-min-microvolt = <1850000>;
|
|
regulator-max-microvolt = <2150000>;
|
|
regulator-always-on; /* Needed for L5/L7 */
|
|
};
|
|
|
|
/*
|
|
* Some of the regulators are unused or managed by another
|
|
* processor (e.g. the modem). We should still define nodes for
|
|
* them to ensure the vote from the application processor can be
|
|
* dropped in case the regulators are already on during boot.
|
|
*
|
|
* The labels for these nodes are omitted on purpose because
|
|
* boards should configure a proper voltage before using them.
|
|
*/
|
|
l1 {};
|
|
|
|
pm8916_l2: l2 {
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-always-on; /* Needed for LPDDR RAM */
|
|
};
|
|
|
|
/* pm8916_l3 is managed by rpmpd (MSM8939_VDDMX) */
|
|
|
|
l4 {};
|
|
|
|
pm8916_l5: l5 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-always-on; /* Needed for most digital I/O */
|
|
};
|
|
|
|
pm8916_l6: l6 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
};
|
|
|
|
pm8916_l7: l7 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-always-on; /* Needed for CPU PLL */
|
|
};
|
|
|
|
pm8916_l8: l8 {
|
|
regulator-min-microvolt = <2900000>;
|
|
regulator-max-microvolt = <2900000>;
|
|
};
|
|
|
|
pm8916_l9: l9 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
l10 {};
|
|
|
|
pm8916_l11: l11 {
|
|
regulator-min-microvolt = <2950000>;
|
|
regulator-max-microvolt = <2950000>;
|
|
regulator-allow-set-load;
|
|
regulator-system-load = <200000>;
|
|
};
|
|
|
|
pm8916_l12: l12 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <2950000>;
|
|
};
|
|
|
|
pm8916_l13: l13 {
|
|
regulator-min-microvolt = <3075000>;
|
|
regulator-max-microvolt = <3075000>;
|
|
};
|
|
|
|
l14 {};
|
|
l15 {};
|
|
l16 {};
|
|
l17 {};
|
|
l18 {};
|
|
};
|
|
};
|
|
|
|
&sdhc_1 {
|
|
vmmc-supply = <&pm8916_l8>;
|
|
vqmmc-supply = <&pm8916_l5>;
|
|
};
|
|
|
|
&sdhc_2 {
|
|
vmmc-supply = <&pm8916_l11>;
|
|
vqmmc-supply = <&pm8916_l12>;
|
|
};
|
|
|
|
&usb_hs_phy {
|
|
v1p8-supply = <&pm8916_l7>;
|
|
v3p3-supply = <&pm8916_l13>;
|
|
};
|
|
|
|
&wcnss {
|
|
vddpx-supply = <&pm8916_l7>;
|
|
};
|
|
|
|
&wcnss_iris {
|
|
vddxo-supply = <&pm8916_l7>;
|
|
vddrfa-supply = <&pm8916_s3>;
|
|
vddpa-supply = <&pm8916_l9>;
|
|
vdddig-supply = <&pm8916_l5>;
|
|
};
|
|
|