[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <964a0719-473e-2c41-ad6d-97f8232b200b@linaro.org>
Date: Tue, 12 Jul 2022 09:58:49 +0200
From: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To: MollySophia <mollysophia379@...il.com>,
Andy Gross <agross@...nel.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: ~postmarketos/upstreaming@...ts.sr.ht, phone-devel@...r.kernel.org
Subject: Re: [PATCH v5 1/2] arm64: dts: qcom: Add support for Xiaomi Mi Mix2s
On 09/07/2022 15:19, MollySophia wrote:
> Add support for Xiaomi Mi Mix2s (polaris) handsets.
>
> Currently working features:
> - UFS
> - Touchscreen
> - USB 2
> - Bluetooth
> - Wi-Fi
> - GPU
> - Venus
> - Display (need jdi-fhd-nt35596s panel driver, which I have sent a
> patch but it haven't been into upstream yet)
Thank you for your patch. There is something to discuss/improve.
>
> Signed-off-by: MollySophia <mollysophia379@...il.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 3 +-
> .../boot/dts/qcom/sdm845-xiaomi-polaris.dts | 772 ++++++++++++++++++
> 2 files changed, 774 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 77ba2c9661d3..d8d12bdabde2 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -111,7 +111,8 @@ dtb-$(CONFIG_ARCH_QCOM) += sdm845-sony-xperia-tama-akatsuki.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdm845-sony-xperia-tama-apollo.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdm845-shift-axolotl.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdm845-xiaomi-beryllium-ebbg.dtb
> -dtb-$(CONFIG_ARCH_QCOM) += sdm845-xiaomi-beryllium-tianma.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += sdm845-xiaomi-beryllium-tianma.dtb
What tree is this based on? It does not look like linux-next.
> +dtb-$(CONFIG_ARCH_QCOM) += sdm845-xiaomi-polaris.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdm850-lenovo-yoga-c630.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sdm850-samsung-w737.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm6125-sony-xperia-seine-pdx201.dtb
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts
> new file mode 100644
> index 000000000000..e4654503ee43
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-polaris.dts
> @@ -0,0 +1,772 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2020, Xilin Wu <strongtz@...h.net>
> + * Copyright (c) 2022, Molly Sophia <mollysophia379@...il.com>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +#include <dt-bindings/input/linux-event-codes.h>
> +#include <dt-bindings/sound/qcom,q6afe.h>
> +#include <dt-bindings/sound/qcom,q6asm.h>
> +#include <dt-bindings/sound/qcom,q6afe.h>
> +#include <dt-bindings/sound/qcom,q6asm.h>
> +#include <dt-bindings/sound/qcom,q6voice.h>
> +#include "sdm845.dtsi"
> +#include "pm8998.dtsi"
> +#include "pmi8998.dtsi"
> +#include "pm8005.dtsi"
> +
> +/*
> + * Delete following upstream (sdm845.dtsi) reserved
> + * memory mappings which are different in this device.
> + */
> +/delete-node/ &rmtfs_mem;
> +/delete-node/ &adsp_mem;
> +/delete-node/ &wlan_msa_mem;
> +/delete-node/ &mpss_region;
> +/delete-node/ &venus_mem;
> +/delete-node/ &cdsp_mem;
> +/delete-node/ &mba_region;
> +/delete-node/ &slpi_mem;
> +/delete-node/ &spss_mem;
> +
> +/ {
> + model = "Xiaomi Mi MIX 2S";
> + compatible = "xiaomi,polaris", "qcom,sdm845";
> + chassis-type = "handset";
> +
> + /* required for bootloader to select correct board */
> + qcom,msm-id = <0x141 0x20001>;
> + qcom,board-id = <0x2a 0x0>;
> +
> + aliases {
> + serial0 = &uart9;
> + serial1 = &uart6;
> + };
> +
> + volume-keys {
gpio-keys
> + compatible = "gpio-keys";
> + autorepeat;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&vol_up_pin_a>;
> +
> + key-vol-up {
> + label = "Volume Up";
> + linux,code = <KEY_VOLUMEUP>;
> + gpios = <&pm8998_gpio 6 GPIO_ACTIVE_LOW>;
> + debounce-interval = <15>;
> + };
> + };
> +
> + reserved-memory {
> + adsp_mem: memory@...00000 {
> + reg = <0 0x8c500000 0 0x1e00000>;
> + no-map;
> + };
> +
> + wlan_msa_mem: memory@...00000 {
> + reg = <0 0x8e300000 0 0x100000>;
> + no-map;
> + };
> +
> + mpss_region: memory@...00000 {
> + reg = <0 0x8e400000 0 0x7800000>;
> + no-map;
> + };
> +
> + venus_mem: memory@...00000 {
> + reg = <0 0x95c00000 0 0x500000>;
> + no-map;
> + };
> +
> + cdsp_mem: memory@...00000 {
> + reg = <0 0x96100000 0 0x800000>;
> + no-map;
> + };
> +
> + mba_region: memory@...00000 {
> + reg = <0 0x96900000 0 0x200000>;
> + no-map;
> + };
> +
> + slpi_mem: memory@...00000 {
> + reg = <0 0x96b00000 0 0x1400000>;
> + no-map;
> + };
> +
> + spss_mem: memory@...00000 {
> + reg = <0 0x97f00000 0 0x100000>;
> + no-map;
> + };
> +
> + rmtfs_mem: memory@...01000 {
> + compatible = "qcom,rmtfs-mem";
> + reg = <0 0xf6301000 0 0x200000>;
> + no-map;
> +
> + qcom,client-id = <1>;
> + qcom,vmid = <15>;
> + };
> + };
> +
> + battery: battery {
> + compatible = "simple-battery";
> +
> + charge-full-design-microamp-hours = <3400000>;
> + voltage-min-design-microvolt = <3400000>;
> + voltage-max-design-microvolt = <4400000>;
> + };
> +
> + vreg_tp_vddio: tp-vddio-vreg {
> + compatible = "regulator-fixed";
> + regulator-name = "vreg_tp_vddio";
> +
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> +
> + gpio = <&tlmm 23 0>;
> + regulator-always-on;
> + regulator-boot-on;
> + enable-active-high;
> + };
> +
> + vreg_s4a_1p8: vreg-s4a-1p8 {
Keep consistent naming with "regulator" prefix or suffix. Not vreg.
> + compatible = "regulator-fixed";
> + regulator-name = "vreg_s4a_1p8";
> +
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + };
> +};
> +
> +&apps_rsc {
> + pm8998-rpmh-regulators {
> + compatible = "qcom,pm8998-rpmh-regulators";
> + qcom,pmic-id = "a";
> +
> + vreg_s2a_1p1: smps2 {
> + regulator-min-microvolt = <1100000>;
> + regulator-max-microvolt = <1100000>;
> + };
> +
> + vreg_s3a_1p35: smps3 {
> + regulator-min-microvolt = <1352000>;
> + regulator-max-microvolt = <1352000>;
> + };
> +
> + vreg_s5a_2p04: smps5 {
> + regulator-min-microvolt = <1904000>;
> + regulator-max-microvolt = <2040000>;
> + };
> +
> + vreg_s7a_1p025: smps7 {
> + regulator-min-microvolt = <900000>;
> + regulator-max-microvolt = <1028000>;
> + };
> +
> + vdda_mipi_dsi0_pll:
> + vdda_ufs1_core:
> + vreg_l1a_0p875: ldo1 {
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <880000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2a_1p2: ldo2 {
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + regulator-always-on;
> + };
> +
> + vreg_l3a_1p0: ldo3 {
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1000000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l5a_0p8: ldo5 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l6a_1p8: ldo6 {
> + regulator-min-microvolt = <1856000>;
> + regulator-max-microvolt = <1856000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l7a_1p8: ldo7 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l8a_1p2: ldo8 {
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1248000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l9a_1p8: ldo9 {
> + regulator-min-microvolt = <1704000>;
> + regulator-max-microvolt = <2928000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l10a_2p95: ldo10 {
> + regulator-min-microvolt = <1704000>;
> + regulator-max-microvolt = <2928000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l11a_1p05: ldo11 {
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1048000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l12a_1p8: ldo12 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l13a_2p95: ldo13 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <2960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l14a_1p8: ldo14 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1880000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + regulator-always-on;
> + };
> +
> + vreg_l15a_1p8: ldo15 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l16a_2p7: ldo16 {
> + regulator-min-microvolt = <2704000>;
> + regulator-max-microvolt = <2704000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l17a_1p3: ldo17 {
> + regulator-min-microvolt = <1304000>;
> + regulator-max-microvolt = <1304000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + regulator-always-on;
> + };
> +
> + vreg_l18a_2p9: ldo18 {
> + regulator-min-microvolt = <2704000>;
> + regulator-max-microvolt = <2960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l19a_3p1: ldo19 {
> + regulator-min-microvolt = <2856000>;
> + regulator-max-microvolt = <3104000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l20a_2p95: ldo20 {
> + regulator-min-microvolt = <2704000>;
> + regulator-max-microvolt = <2960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l21a_2p95: ldo21 {
> + regulator-min-microvolt = <2704000>;
> + regulator-max-microvolt = <2960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l22a_3p3: ldo22 {
> + regulator-min-microvolt = <2864000>;
> + regulator-max-microvolt = <3312000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l23a_3p3: ldo23 {
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3312000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l24a_3p075: ldo24 {
> + regulator-min-microvolt = <3088000>;
> + regulator-max-microvolt = <3088000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l25a_3p3: ldo25 {
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3312000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + regulator-always-on;
> + };
> +
> + vdda_mipi_dsi0_1p2:
> + vdda_ufs1_1p2:
> + vreg_l26a_1p2: ldo26 {
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l28a_3p0: ldo28 {
> + regulator-min-microvolt = <2856000>;
> + regulator-max-microvolt = <3008000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + regulator-always-on;
> + };
> +
> + vreg_lvs1a_1p8: lvs1 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + vreg_lvs2a_1p8: lvs2 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> + };
> +
> + pmi8998-rpmh-regulators {
> + compatible = "qcom,pmi8998-rpmh-regulators";
> + qcom,pmic-id = "b";
> +
> + vreg_bob: bob {
> + regulator-min-microvolt = <3312000>;
> + regulator-max-microvolt = <3600000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
> + regulator-allow-bypass;
> + };
> + };
> +
> + pm8005-rpmh-regulators {
> + compatible = "qcom,pm8005-rpmh-regulators";
> + qcom,pmic-id = "c";
> +
> + vreg_smp3c_0p6: smps3 {
> + regulator-min-microvolt = <600000>;
> + regulator-max-microvolt = <600000>;
> + regulator-always-on;
> + };
> + };
> +};
> +
> +&cdsp_pas {
> + firmware-name = "qcom/sdm845/polaris/cdsp.mbn";
> + status = "okay";
> +};
> +
> +&dsi0 {
> + vdda-supply = <&vdda_mipi_dsi0_1p2>;
> + status = "okay";
> +
> + display_panel: panel@0 {
> + compatible = "jdi,fhd-nt35596s";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0>;
> +
> + reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
> + vddio-supply = <&vreg_l14a_1p8>;
> + backlight = <&pmi8998_wled>;
> + vddpos-supply = <&lab>;
> + vddneg-supply = <&ibb>;
> +
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&sde_dsi_active>;
> + pinctrl-1 = <&sde_dsi_suspend>;
> +
> + port {
> + panel_in: endpoint {
> + remote-endpoint = <&dsi0_out>;
> + };
> + };
> + };
> +};
> +
> +&dsi0_out {
> + remote-endpoint = <&panel_in>;
> + data-lanes = <0 1 2 3>;
> +};
> +
> +&dsi0_phy {
> + vdds-supply = <&vdda_mipi_dsi0_pll>;
> + status = "okay";
> +};
> +
> +&gcc {
> + protected-clocks = <GCC_QSPI_CORE_CLK>,
> + <GCC_QSPI_CORE_CLK_SRC>,
> + <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
> + <GCC_LPASS_Q6_AXI_CLK>,
> + <GCC_LPASS_SWAY_CLK>;
> +};
> +
> +&gmu {
> + status = "okay";
> +};
> +
> +&gpi_dma0 {
> + status = "okay";
> +};
> +
> +&gpi_dma1 {
> + status = "okay";
> +};
> +
> +&gpu {
> + status = "okay";
> +
> + zap-shader {
> + memory-region = <&gpu_mem>;
> + firmware-name = "qcom/sdm845/polaris/a630_zap.mbn";
> + };
> +};
> +
> +&ibb {
> + regulator-min-microvolt = <4600000>;
> + regulator-max-microvolt = <6000000>;
> + regulator-over-current-protection;
> + regulator-pull-down;
> + regulator-soft-start;
> + qcom,discharge-resistor-kohms = <300>;
> +};
> +
> +&ipa {
> + memory-region = <&ipa_fw_mem>;
> + firmware-name = "qcom/sdm845/polaris/ipa_fws.mbn";
> + status = "okay";
> +};
> +
> +&i2c14 {
> + clock-frequency = <400000>;
> + dmas = <&gpi_dma1 0 6 QCOM_GPI_I2C>,
No need for two spaces after =. Fix it everywhere in your commit.
> + <&gpi_dma1 1 6 QCOM_GPI_I2C>;
Align with opening <
> + dma-names = "tx", "rx";
> + status = "okay";
> +
> + touchscreen@20 {
> + compatible = "syna,rmi4-i2c";
> + reg = <0x20>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + interrupts-extended = <&tlmm 125 0x2008>;
> +
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&ts_int_default &ts_reset_default>;
> + pinctrl-1 = <&ts_int_sleep &ts_reset_sleep>;
> +
> + vdd-supply = <&vreg_l28a_3p0>;
> + vio-supply = <&vreg_tp_vddio>;
> +
> + syna,startup-delay-ms = <0xc8>;
> + syna,reset-delay-ms = <0xc8>;
> +
> + rmi4-f01@1 {
> + syna,nosleep-mode = <0x1>;
> + reg = <0x1>;
> + };
> +
> + rmi4-f12@12 {
> + syna,rezero-wait-ms = <0xc8>;
> + syna,clip-x-high = <0x438>;
> + syna,clip-y-high = <0x870>;
> + syna,sensor-type = <0x1>;
> + syna,clip-x-low = <0x0>;
> + syna,clip-y-low = <0x0>;
> + };
> + };
> +};
> +
> +&lab {
> + regulator-min-microvolt = <4600000>;
> + regulator-max-microvolt = <6000000>;
> + regulator-soft-start;
> + regulator-pull-down;
> +};
> +
> +&mdss {
> + status = "okay";
> +};
> +
> +&mss_pil {
> + firmware-name = "qcom/sdm845/polaris/mba.mbn", "qcom/sdm845/polaris/modem.mbn";
> + status = "okay";
> +};
> +
> +&pmi8998_rradc {
> + status = "okay";
> +};
> +
> +&pmi8998_wled {
> + qcom,current-limit-microamp = <20000>;
> + qcom,current-boost-limit = <970>;
> + qcom,ovp-millivolt = <19600>;
> + qcom,switching-freq = <600>;
> + qcom,num-strings = <4>;
> + qcom,cabc;
> +
> + status = "okay";
> +};
> +
> +&pm8998_gpio {
> + vol_up_pin_a: vol-up-active {
This does not look like passing bindings check. Schema requires state
suffix. Did you run dtbs_check?
> + qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
> + function = "normal";
> + pins = "gpio6";
> + input-enable;
> + bias-pull-up;
> + };
Best regards,
Krzysztof
Powered by blists - more mailing lists