Message ID | 20240213110137.122737-1-i@rong.moe |
---|---|
Headers | show |
Series | ARM: dts: qcom: msm8974: Add Samsung Galaxy S5 China support | expand |
On 13/02/2024 11:58, Rong Zhang wrote: > Samsung Galaxy S5 has many variants. Variants that support LTE use klte* > as their codename. Currently, the only supported one is the one without > any suffix, namely, klte. It is known that other klte* variants have > only minor differences compared to klte and can mostly work with the > klte DTB. > > Split the common part into a common DTSI so that it can be imported in > the DTS of klte and other klte* variants. > > Signed-off-by: Rong Zhang <i@rong.moe> > --- > ... qcom-msm8974pro-samsung-klte-common.dtsi} | 7 +- > .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833 +----------------- Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof
On 13/02/2024 11:58, Rong Zhang wrote: > The only difference between Samsung Galaxy S5 China (kltechn) and klte > is the gpio pins of i2c_led_gpio. With pins corrected, the LEDs and WiFi > are able to work properly. > > Signed-off-by: Rong Zhang <i@rong.moe> > --- > arch/arm/boot/dts/qcom/Makefile | 1 + > .../dts/qcom/qcom-msm8974pro-samsung-kltechn.dts | 16 ++++++++++++++++ > 2 files changed, 17 insertions(+) > create mode 100644 arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof
On 13.02.2024 11:58, Rong Zhang wrote: > klte* variants have little difference in the WiFi part. Without > "brcm,board-type", variant-specific NVRAM file will be probed (e.g., > klte probes samsung,klte). Pin it to "samsung,klte" to allow klte* to > load the same NVRAM file as klte. > > Signed-off-by: Rong Zhang <i@rong.moe> > --- Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org> Konrad
在 2024-02-13星期二的 18:58 +0800,Rong Zhang写道: > Samsung Galaxy S5 has many variants. Variants that support LTE use > klte* > as their codename. Currently, the only supported one is the one > without > any suffix, namely, klte. It is known that other klte* variants have > only minor differences compared to klte and can mostly work with the > klte DTB. > > Split the common part into a common DTSI so that it can be imported > in > the DTS of klte and other klte* variants. > > Signed-off-by: Rong Zhang <i@rong.moe> > --- > ... qcom-msm8974pro-samsung-klte-common.dtsi} | 7 +- > .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833 Patched tested by picking into postmarketOS (a kltechn kernel variant is already added there). Tested-by: Icenowy Zheng <uwu@icenowy.me> > +----------------- > 2 files changed, 17 insertions(+), 823 deletions(-) > copy arch/arm/boot/dts/qcom/{qcom-msm8974pro-samsung-klte.dts => > qcom-msm8974pro-samsung-klte-common.dtsi} (98%) > rewrite arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > (99%) > > diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi > similarity index 98% > copy from arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > copy to arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte- > common.dtsi > index b93539e2b87e..11e35b34ebd6 100644 > --- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > +++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi > @@ -6,8 +6,6 @@ > #include <dt-bindings/leds/common.h> > > / { > - model = "Samsung Galaxy S5"; > - compatible = "samsung,klte", "qcom,msm8974pro", > "qcom,msm8974"; > chassis-type = "handset"; > > aliases { > @@ -77,12 +75,10 @@ touchkey@20 { > }; > }; > > - i2c-gpio-led { > + i2c_led_gpio: i2c-gpio-led { > compatible = "i2c-gpio"; > #address-cells = <1>; > #size-cells = <0>; > - scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | > GPIO_OPEN_DRAIN)>; > - sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | > GPIO_OPEN_DRAIN)>; > pinctrl-names = "default"; > pinctrl-0 = <&i2c_led_gpioex_pins>; > > @@ -770,7 +766,6 @@ i2c_touchkey_pins: i2c-touchkey-state { > }; > > i2c_led_gpioex_pins: i2c-led-gpioex-state { > - pins = "gpio120", "gpio121"; > function = "gpio"; > bias-pull-down; > }; > diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > dissimilarity index 99% > index b93539e2b87e..954665f3a9dd 100644 > --- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > +++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > @@ -1,817 +1,16 @@ > -// SPDX-License-Identifier: GPL-2.0 > -#include "qcom-msm8974pro.dtsi" > -#include "pma8084.dtsi" > -#include <dt-bindings/input/input.h> > -#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> > -#include <dt-bindings/leds/common.h> > - > -/ { > - model = "Samsung Galaxy S5"; > - compatible = "samsung,klte", "qcom,msm8974pro", > "qcom,msm8974"; > - chassis-type = "handset"; > - > - aliases { > - serial0 = &blsp1_uart1; > - mmc0 = &sdhc_1; /* SDC1 eMMC slot */ > - mmc1 = &sdhc_3; /* SDC2 SD card slot */ > - }; > - > - chosen { > - stdout-path = "serial0:115200n8"; > - }; > - > - gpio-keys { > - compatible = "gpio-keys"; > - > - pinctrl-names = "default"; > - pinctrl-0 = <&gpio_keys_pin_a>; > - > - key-volume-down { > - label = "volume_down"; > - gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>; > - linux,input-type = <1>; > - linux,code = <KEY_VOLUMEDOWN>; > - debounce-interval = <15>; > - }; > - > - key-home { > - label = "home_key"; > - gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>; > - linux,input-type = <1>; > - linux,code = <KEY_HOMEPAGE>; > - wakeup-source; > - debounce-interval = <15>; > - }; > - > - key-volume-up { > - label = "volume_up"; > - gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>; > - linux,input-type = <1>; > - linux,code = <KEY_VOLUMEUP>; > - debounce-interval = <15>; > - }; > - }; > - > - i2c-gpio-touchkey { > - compatible = "i2c-gpio"; > - #address-cells = <1>; > - #size-cells = <0>; > - sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH | > GPIO_OPEN_DRAIN)>; > - scl-gpios = <&tlmm 96 (GPIO_ACTIVE_HIGH | > GPIO_OPEN_DRAIN)>; > - pinctrl-names = "default"; > - pinctrl-0 = <&i2c_touchkey_pins>; > - > - touchkey@20 { > - compatible = "cypress,tm2-touchkey"; > - reg = <0x20>; > - > - interrupt-parent = <&pma8084_gpios>; > - interrupts = <6 IRQ_TYPE_EDGE_FALLING>; > - pinctrl-names = "default"; > - pinctrl-0 = <&touchkey_pin>; > - > - vcc-supply = <&max77826_ldo15>; > - vdd-supply = <&pma8084_l19>; > - > - linux,keycodes = <KEY_APPSELECT KEY_BACK>; > - }; > - }; > - > - i2c-gpio-led { > - compatible = "i2c-gpio"; > - #address-cells = <1>; > - #size-cells = <0>; > - scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | > GPIO_OPEN_DRAIN)>; > - sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | > GPIO_OPEN_DRAIN)>; > - pinctrl-names = "default"; > - pinctrl-0 = <&i2c_led_gpioex_pins>; > - > - i2c-gpio,delay-us = <2>; > - > - gpio_expander: gpio@20 { > - compatible = "nxp,pcal6416"; > - reg = <0x20>; > - > - gpio-controller; > - #gpio-cells = <2>; > - > - vcc-supply = <&pma8084_s4>; > - > - pinctrl-names = "default"; > - pinctrl-0 = <&gpioex_pin>; > - > - reset-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>; > - }; > - > - led-controller@30 { > - compatible = "panasonic,an30259a"; > - reg = <0x30>; > - > - #address-cells = <1>; > - #size-cells = <0>; > - > - led@1 { > - reg = <1>; > - function = LED_FUNCTION_STATUS; > - color = <LED_COLOR_ID_RED>; > - }; > - > - led@2 { > - reg = <2>; > - function = LED_FUNCTION_STATUS; > - color = <LED_COLOR_ID_GREEN>; > - }; > - > - led@3 { > - reg = <3>; > - function = LED_FUNCTION_STATUS; > - color = <LED_COLOR_ID_BLUE>; > - }; > - }; > - }; > - > - vreg_wlan: wlan-regulator { > - compatible = "regulator-fixed"; > - > - regulator-name = "wl-reg"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - > - gpio = <&gpio_expander 8 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > - vreg_panel: panel-regulator { > - compatible = "regulator-fixed"; > - > - pinctrl-names = "default"; > - pinctrl-0 = <&panel_en_pin>; > - > - regulator-name = "panel-vddr-reg"; > - regulator-min-microvolt = <1500000>; > - regulator-max-microvolt = <1500000>; > - > - gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > - vreg_vph_pwr: vreg-vph-pwr { > - compatible = "regulator-fixed"; > - regulator-name = "vph-pwr"; > - > - regulator-min-microvolt = <3600000>; > - regulator-max-microvolt = <3600000>; > - > - regulator-always-on; > - }; > -}; > - > -&blsp1_i2c2 { > - status = "okay"; > - > - touchscreen@20 { > - compatible = "syna,rmi4-i2c"; > - reg = <0x20>; > - > - interrupt-parent = <&pma8084_gpios>; > - interrupts = <8 IRQ_TYPE_EDGE_FALLING>; > - > - vdd-supply = <&max77826_ldo13>; > - vio-supply = <&pma8084_lvs2>; > - > - pinctrl-names = "default"; > - pinctrl-0 = <&touch_pin>; > - > - syna,startup-delay-ms = <100>; > - > - #address-cells = <1>; > - #size-cells = <0>; > - > - rmi4-f01@1 { > - reg = <0x1>; > - syna,nosleep-mode = <1>; > - }; > - > - rmi4-f12@12 { > - reg = <0x12>; > - syna,sensor-type = <1>; > - }; > - }; > -}; > - > -&blsp1_i2c6 { > - status = "okay"; > - > - pmic@60 { > - reg = <0x60>; > - compatible = "maxim,max77826"; > - > - regulators { > - max77826_ldo1: LDO1 { > - regulator-min-microvolt = <1200000>; > - regulator-max-microvolt = <1200000>; > - }; > - > - max77826_ldo2: LDO2 { > - regulator-min-microvolt = <1000000>; > - regulator-max-microvolt = <1000000>; > - }; > - > - max77826_ldo3: LDO3 { > - regulator-min-microvolt = <1200000>; > - regulator-max-microvolt = <1200000>; > - }; > - > - max77826_ldo4: LDO4 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - max77826_ldo5: LDO5 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - max77826_ldo6: LDO6 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <3300000>; > - }; > - > - max77826_ldo7: LDO7 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - max77826_ldo8: LDO8 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <3300000>; > - }; > - > - max77826_ldo9: LDO9 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - max77826_ldo10: LDO10 { > - regulator-min-microvolt = <2800000>; > - regulator-max-microvolt = <2950000>; > - }; > - > - max77826_ldo11: LDO11 { > - regulator-min-microvolt = <2700000>; > - regulator-max-microvolt = <2950000>; > - }; > - > - max77826_ldo12: LDO12 { > - regulator-min-microvolt = <2500000>; > - regulator-max-microvolt = <3300000>; > - }; > - > - max77826_ldo13: LDO13 { > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - }; > - > - max77826_ldo14: LDO14 { > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - }; > - > - max77826_ldo15: LDO15 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - max77826_buck: BUCK { > - regulator-min-microvolt = <1225000>; > - regulator-max-microvolt = <1225000>; > - }; > - > - max77826_buckboost: BUCKBOOST { > - regulator-min-microvolt = <3400000>; > - regulator-max-microvolt = <3400000>; > - }; > - }; > - }; > -}; > - > -&blsp1_uart2 { > - status = "okay"; > -}; > - > -&blsp2_i2c6 { > - status = "okay"; > - > - fuelgauge@36 { > - compatible = "maxim,max17048"; > - reg = <0x36>; > - > - maxim,double-soc; > - maxim,rcomp = /bits/ 8 <0x56>; > - > - interrupt-parent = <&pma8084_gpios>; > - interrupts = <21 IRQ_TYPE_LEVEL_LOW>; > - > - pinctrl-names = "default"; > - pinctrl-0 = <&fuelgauge_pin>; > - }; > -}; > - > -&blsp2_uart2 { > - status = "okay"; > - > - pinctrl-names = "default", "sleep"; > - pinctrl-0 = <&blsp2_uart2_pins_active>; > - pinctrl-1 = <&blsp2_uart2_pins_sleep>; > - > - bluetooth { > - compatible = "brcm,bcm43540-bt"; > - max-speed = <3000000>; > - pinctrl-names = "default"; > - pinctrl-0 = <&bt_pins>; > - device-wakeup-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>; > - shutdown-gpios = <&gpio_expander 9 GPIO_ACTIVE_HIGH>; > - interrupt-parent = <&tlmm>; > - interrupts = <75 IRQ_TYPE_LEVEL_HIGH>; > - interrupt-names = "host-wakeup"; > - }; > -}; > - > -&gpu { > - status = "okay"; > -}; > - > -&mdss { > - status = "okay"; > -}; > - > -&mdss_dsi0 { > - status = "okay"; > - > - vdda-supply = <&pma8084_l2>; > - vdd-supply = <&pma8084_l22>; > - vddio-supply = <&pma8084_l12>; > - > - panel: panel@0 { > - reg = <0>; > - compatible = "samsung,s6e3fa2"; > - > - pinctrl-names = "default"; > - pinctrl-0 = <&panel_te_pin &panel_rst_pin>; > - > - iovdd-supply = <&pma8084_lvs4>; > - vddr-supply = <&vreg_panel>; > - > - reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>; > - > - port { > - panel_in: endpoint { > - remote-endpoint = <&mdss_dsi0_out>; > - }; > - }; > - }; > -}; > - > -&mdss_dsi0_out { > - remote-endpoint = <&panel_in>; > - data-lanes = <0 1 2 3>; > -}; > - > -&mdss_dsi0_phy { > - status = "okay"; > - > - vddio-supply = <&pma8084_l12>; > -}; > - > -&pma8084_gpios { > - gpio_keys_pin_a: gpio-keys-active-state { > - pins = "gpio2", "gpio3", "gpio5"; > - function = "normal"; > - > - bias-pull-up; > - power-source = <PMA8084_GPIO_S4>; > - }; > - > - touchkey_pin: touchkey-int-state { > - pins = "gpio6"; > - function = "normal"; > - bias-disable; > - input-enable; > - power-source = <PMA8084_GPIO_S4>; > - }; > - > - touch_pin: touchscreen-int-state { > - pins = "gpio8"; > - function = "normal"; > - bias-disable; > - input-enable; > - power-source = <PMA8084_GPIO_S4>; > - }; > - > - panel_en_pin: panel-en-state { > - pins = "gpio14"; > - function = "normal"; > - bias-pull-up; > - power-source = <PMA8084_GPIO_S4>; > - qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; > - }; > - > - wlan_sleep_clk_pin: wlan-sleep-clk-state { > - pins = "gpio16"; > - function = "func2"; > - > - output-high; > - power-source = <PMA8084_GPIO_S4>; > - qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>; > - }; > - > - panel_rst_pin: panel-rst-state { > - pins = "gpio17"; > - function = "normal"; > - bias-disable; > - power-source = <PMA8084_GPIO_S4>; > - qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; > - }; > - > - fuelgauge_pin: fuelgauge-int-state { > - pins = "gpio21"; > - function = "normal"; > - bias-disable; > - input-enable; > - power-source = <PMA8084_GPIO_S4>; > - }; > -}; > - > -&remoteproc_adsp { > - status = "okay"; > - cx-supply = <&pma8084_s2>; > -}; > - > -&remoteproc_mss { > - status = "okay"; > - cx-supply = <&pma8084_s2>; > - mss-supply = <&pma8084_s6>; > - mx-supply = <&pma8084_s1>; > - pll-supply = <&pma8084_l12>; > -}; > - > -&rpm_requests { > - regulators-0 { > - compatible = "qcom,rpm-pma8084-regulators"; > - > - pma8084_s1: s1 { > - regulator-min-microvolt = <675000>; > - regulator-max-microvolt = <1050000>; > - regulator-always-on; > - }; > - > - pma8084_s2: s2 { > - regulator-min-microvolt = <500000>; > - regulator-max-microvolt = <1050000>; > - }; > - > - pma8084_s3: s3 { > - regulator-min-microvolt = <1300000>; > - regulator-max-microvolt = <1300000>; > - }; > - > - pma8084_s4: s4 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - pma8084_s5: s5 { > - regulator-min-microvolt = <2150000>; > - regulator-max-microvolt = <2150000>; > - }; > - > - pma8084_s6: s6 { > - regulator-min-microvolt = <1050000>; > - regulator-max-microvolt = <1050000>; > - }; > - > - pma8084_l1: l1 { > - regulator-min-microvolt = <1225000>; > - regulator-max-microvolt = <1225000>; > - }; > - > - pma8084_l2: l2 { > - regulator-min-microvolt = <1200000>; > - regulator-max-microvolt = <1200000>; > - }; > - > - pma8084_l3: l3 { > - regulator-min-microvolt = <1050000>; > - regulator-max-microvolt = <1200000>; > - }; > - > - pma8084_l4: l4 { > - regulator-min-microvolt = <1200000>; > - regulator-max-microvolt = <1225000>; > - }; > - > - pma8084_l5: l5 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - pma8084_l6: l6 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - pma8084_l7: l7 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - pma8084_l8: l8 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - pma8084_l9: l9 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <2950000>; > - }; > - > - pma8084_l10: l10 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <2950000>; > - }; > - > - pma8084_l11: l11 { > - regulator-min-microvolt = <1300000>; > - regulator-max-microvolt = <1300000>; > - }; > - > - pma8084_l12: l12 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - regulator-always-on; > - }; > - > - pma8084_l13: l13 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <2950000>; > - }; > - > - pma8084_l14: l14 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <1800000>; > - }; > - > - pma8084_l15: l15 { > - regulator-min-microvolt = <2050000>; > - regulator-max-microvolt = <2050000>; > - }; > - > - pma8084_l16: l16 { > - regulator-min-microvolt = <2700000>; > - regulator-max-microvolt = <2700000>; > - }; > - > - pma8084_l17: l17 { > - regulator-min-microvolt = <2850000>; > - regulator-max-microvolt = <2850000>; > - }; > - > - pma8084_l18: l18 { > - regulator-min-microvolt = <2850000>; > - regulator-max-microvolt = <2850000>; > - }; > - > - pma8084_l19: l19 { > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - }; > - > - pma8084_l20: l20 { > - regulator-min-microvolt = <2950000>; > - regulator-max-microvolt = <2950000>; > - regulator-system-load = <200000>; > - regulator-allow-set-load; > - }; > - > - pma8084_l21: l21 { > - regulator-min-microvolt = <2950000>; > - regulator-max-microvolt = <2950000>; > - regulator-system-load = <200000>; > - regulator-allow-set-load; > - }; > - > - pma8084_l22: l22 { > - regulator-min-microvolt = <3000000>; > - regulator-max-microvolt = <3300000>; > - }; > - > - pma8084_l23: l23 { > - regulator-min-microvolt = <3000000>; > - regulator-max-microvolt = <3000000>; > - }; > - > - pma8084_l24: l24 { > - regulator-min-microvolt = <3075000>; > - regulator-max-microvolt = <3075000>; > - }; > - > - pma8084_l25: l25 { > - regulator-min-microvolt = <2100000>; > - regulator-max-microvolt = <2100000>; > - }; > - > - pma8084_l26: l26 { > - regulator-min-microvolt = <1800000>; > - regulator-max-microvolt = <2050000>; > - }; > - > - pma8084_l27: l27 { > - regulator-min-microvolt = <1000000>; > - regulator-max-microvolt = <1225000>; > - }; > - > - pma8084_lvs1: lvs1 {}; > - pma8084_lvs2: lvs2 {}; > - pma8084_lvs3: lvs3 {}; > - pma8084_lvs4: lvs4 {}; > - > - pma8084_5vs1: 5vs1 {}; > - }; > -}; > - > -&sdhc_1 { > - status = "okay"; > - > - vmmc-supply = <&pma8084_l20>; > - vqmmc-supply = <&pma8084_s4>; > - > - pinctrl-names = "default", "sleep"; > - pinctrl-0 = <&sdc1_on>; > - pinctrl-1 = <&sdc1_off>; > -}; > - > -&sdhc_2 { > - status = "okay"; > - max-frequency = <100000000>; > - vmmc-supply = <&vreg_wlan>; > - vqmmc-supply = <&pma8084_s4>; > - non-removable; > - > - pinctrl-names = "default", "sleep"; > - pinctrl-0 = <&sdc2_on>; > - pinctrl-1 = <&sdc2_off>; > - > - wifi@1 { > - reg = <1>; > - compatible = "brcm,bcm4329-fmac"; > - > - interrupt-parent = <&tlmm>; > - interrupts = <92 IRQ_TYPE_LEVEL_HIGH>; > - interrupt-names = "host-wake"; > - > - pinctrl-names = "default"; > - pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>; > - }; > -}; > - > -&sdhc_3 { > - status = "okay"; > - max-frequency = <100000000>; > - vmmc-supply = <&pma8084_l21>; > - vqmmc-supply = <&pma8084_l13>; > - > - /* > - * cd-gpio is intentionally disabled. If enabled, an SD card > - * present during boot is not initialized correctly. Without > - * cd-gpios the driver resorts to polling, so hotplug works. > - */ > - pinctrl-names = "default"; > - pinctrl-0 = <&sdc3_on /* &sdhc3_cd_pin */>; > - /* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; */ > -}; > - > -&tlmm { > - /* This seems suspicious, but somebody with this device > should look into it. */ > - blsp2_uart2_pins_active: blsp2-uart2-pins-active-state { > - pins = "gpio45", "gpio46", "gpio47", "gpio48"; > - function = "blsp_uart8"; > - drive-strength = <8>; > - bias-disable; > - }; > - > - blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state { > - pins = "gpio45", "gpio46", "gpio47", "gpio48"; > - function = "gpio"; > - drive-strength = <2>; > - bias-pull-down; > - }; > - > - bt_pins: bt-pins-state { > - hostwake-pins { > - pins = "gpio75"; > - function = "gpio"; > - drive-strength = <16>; > - }; > - > - devwake-pins { > - pins = "gpio91"; > - function = "gpio"; > - drive-strength = <2>; > - }; > - }; > - > - sdc1_on: sdhc1-on-state { > - clk-pins { > - pins = "sdc1_clk"; > - drive-strength = <4>; > - bias-disable; > - }; > - > - cmd-data-pins { > - pins = "sdc1_cmd", "sdc1_data"; > - drive-strength = <4>; > - bias-pull-up; > - }; > - }; > - > - sdc3_on: sdc3-on-state { > - pins = "gpio35", "gpio36", "gpio37", "gpio38", > "gpio39", "gpio40"; > - function = "sdc3"; > - drive-strength = <8>; > - bias-disable; > - }; > - > - sdhc3_cd_pin: sdc3-cd-on-state { > - pins = "gpio62"; > - function = "gpio"; > - > - drive-strength = <2>; > - bias-disable; > - }; > - > - sdc2_on: sdhc2-on-state { > - clk-pins { > - pins = "sdc2_clk"; > - drive-strength = <6>; > - bias-disable; > - }; > - > - cmd-data-pins { > - pins = "sdc2_cmd", "sdc2_data"; > - drive-strength = <6>; > - bias-pull-up; > - }; > - }; > - > - i2c_touchkey_pins: i2c-touchkey-state { > - pins = "gpio95", "gpio96"; > - function = "gpio"; > - bias-pull-up; > - }; > - > - i2c_led_gpioex_pins: i2c-led-gpioex-state { > - pins = "gpio120", "gpio121"; > - function = "gpio"; > - bias-pull-down; > - }; > - > - gpioex_pin: gpioex-state { > - pins = "gpio145"; > - function = "gpio"; > - bias-pull-up; > - drive-strength = <2>; > - }; > - > - wifi_pin: wifi-state { > - pins = "gpio92"; > - function = "gpio"; > - bias-pull-down; > - }; > - > - panel_te_pin: panel-state { > - pins = "gpio12"; > - function = "mdp_vsync"; > - drive-strength = <2>; > - bias-disable; > - }; > -}; > - > -&usb { > - status = "okay"; > - > - phys = <&usb_hs1_phy>; > - phy-select = <&tcsr 0xb000 0>; > - > - hnp-disable; > - srp-disable; > - adp-disable; > -}; > - > -&usb_hs1_phy { > - status = "okay"; > - > - v1p8-supply = <&pma8084_l6>; > - v3p3-supply = <&pma8084_l24>; > - > - qcom,init-seq = /bits/ 8 <0x1 0x64>; > -}; > +// SPDX-License-Identifier: GPL-2.0 > +#include "qcom-msm8974pro-samsung-klte-common.dtsi" > + > +/ { > + model = "Samsung Galaxy S5"; > + compatible = "samsung,klte", "qcom,msm8974pro", > "qcom,msm8974"; > +}; > + > +&i2c_led_gpio { > + scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > + sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > +}; > + > +&i2c_led_gpioex_pins { > + pins = "gpio120", "gpio121"; > +};
在 2024-04-14星期日的 21:58 +0800,Icenowy Zheng写道: > 在 2024-02-13星期二的 18:58 +0800,Rong Zhang写道: > > Samsung Galaxy S5 has many variants. Variants that support LTE use > > klte* > > as their codename. Currently, the only supported one is the one > > without > > any suffix, namely, klte. It is known that other klte* variants > > have > > only minor differences compared to klte and can mostly work with > > the > > klte DTB. > > > > Split the common part into a common DTSI so that it can be imported > > in > > the DTS of klte and other klte* variants. > > > > Signed-off-by: Rong Zhang <i@rong.moe> > > --- > > ... qcom-msm8974pro-samsung-klte-common.dtsi} | 7 +- > > .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833 > > Patched tested by picking into postmarketOS (a kltechn kernel variant > is already added there). > > Tested-by: Icenowy Zheng <uwu@icenowy.me> Sorry I wrongly sent it to the 1/4 patch, this should be sent to the cover letter, and this Tested-by tag applies to all 4 patches. > > > +----------------- > > 2 files changed, 17 insertions(+), 823 deletions(-) > > copy arch/arm/boot/dts/qcom/{qcom-msm8974pro-samsung-klte.dts => > > qcom-msm8974pro-samsung-klte-common.dtsi} (98%) > > rewrite arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > > (99%) > > > > diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung- > > klte.dts > > b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi > > similarity index 98% > > copy from arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > > copy to arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte- > > common.dtsi > > index b93539e2b87e..11e35b34ebd6 100644 > > --- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > > +++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte- > > common.dtsi > > @@ -6,8 +6,6 @@ > > #include <dt-bindings/leds/common.h> > > > > / { > > - model = "Samsung Galaxy S5"; > > - compatible = "samsung,klte", "qcom,msm8974pro", > > "qcom,msm8974"; > > chassis-type = "handset"; > > > > aliases { > > @@ -77,12 +75,10 @@ touchkey@20 { > > }; > > }; > > > > - i2c-gpio-led { > > + i2c_led_gpio: i2c-gpio-led { > > compatible = "i2c-gpio"; > > #address-cells = <1>; > > #size-cells = <0>; > > - scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | > > GPIO_OPEN_DRAIN)>; > > - sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | > > GPIO_OPEN_DRAIN)>; > > pinctrl-names = "default"; > > pinctrl-0 = <&i2c_led_gpioex_pins>; > > > > @@ -770,7 +766,6 @@ i2c_touchkey_pins: i2c-touchkey-state { > > }; > > > > i2c_led_gpioex_pins: i2c-led-gpioex-state { > > - pins = "gpio120", "gpio121"; > > function = "gpio"; > > bias-pull-down; > > }; > > diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung- > > klte.dts > > b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > > dissimilarity index 99% > > index b93539e2b87e..954665f3a9dd 100644 > > --- a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > > +++ b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts > > @@ -1,817 +1,16 @@ > > -// SPDX-License-Identifier: GPL-2.0 > > -#include "qcom-msm8974pro.dtsi" > > -#include "pma8084.dtsi" > > -#include <dt-bindings/input/input.h> > > -#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> > > -#include <dt-bindings/leds/common.h> > > - > > -/ { > > - model = "Samsung Galaxy S5"; > > - compatible = "samsung,klte", "qcom,msm8974pro", > > "qcom,msm8974"; > > - chassis-type = "handset"; > > - > > - aliases { > > - serial0 = &blsp1_uart1; > > - mmc0 = &sdhc_1; /* SDC1 eMMC slot */ > > - mmc1 = &sdhc_3; /* SDC2 SD card slot */ > > - }; > > - > > - chosen { > > - stdout-path = "serial0:115200n8"; > > - }; > > - > > - gpio-keys { > > - compatible = "gpio-keys"; > > - > > - pinctrl-names = "default"; > > - pinctrl-0 = <&gpio_keys_pin_a>; > > - > > - key-volume-down { > > - label = "volume_down"; > > - gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>; > > - linux,input-type = <1>; > > - linux,code = <KEY_VOLUMEDOWN>; > > - debounce-interval = <15>; > > - }; > > - > > - key-home { > > - label = "home_key"; > > - gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>; > > - linux,input-type = <1>; > > - linux,code = <KEY_HOMEPAGE>; > > - wakeup-source; > > - debounce-interval = <15>; > > - }; > > - > > - key-volume-up { > > - label = "volume_up"; > > - gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>; > > - linux,input-type = <1>; > > - linux,code = <KEY_VOLUMEUP>; > > - debounce-interval = <15>; > > - }; > > - }; > > - > > - i2c-gpio-touchkey { > > - compatible = "i2c-gpio"; > > - #address-cells = <1>; > > - #size-cells = <0>; > > - sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH | > > GPIO_OPEN_DRAIN)>; > > - scl-gpios = <&tlmm 96 (GPIO_ACTIVE_HIGH | > > GPIO_OPEN_DRAIN)>; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&i2c_touchkey_pins>; > > - > > - touchkey@20 { > > - compatible = "cypress,tm2-touchkey"; > > - reg = <0x20>; > > - > > - interrupt-parent = <&pma8084_gpios>; > > - interrupts = <6 IRQ_TYPE_EDGE_FALLING>; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&touchkey_pin>; > > - > > - vcc-supply = <&max77826_ldo15>; > > - vdd-supply = <&pma8084_l19>; > > - > > - linux,keycodes = <KEY_APPSELECT KEY_BACK>; > > - }; > > - }; > > - > > - i2c-gpio-led { > > - compatible = "i2c-gpio"; > > - #address-cells = <1>; > > - #size-cells = <0>; > > - scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | > > GPIO_OPEN_DRAIN)>; > > - sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | > > GPIO_OPEN_DRAIN)>; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&i2c_led_gpioex_pins>; > > - > > - i2c-gpio,delay-us = <2>; > > - > > - gpio_expander: gpio@20 { > > - compatible = "nxp,pcal6416"; > > - reg = <0x20>; > > - > > - gpio-controller; > > - #gpio-cells = <2>; > > - > > - vcc-supply = <&pma8084_s4>; > > - > > - pinctrl-names = "default"; > > - pinctrl-0 = <&gpioex_pin>; > > - > > - reset-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>; > > - }; > > - > > - led-controller@30 { > > - compatible = "panasonic,an30259a"; > > - reg = <0x30>; > > - > > - #address-cells = <1>; > > - #size-cells = <0>; > > - > > - led@1 { > > - reg = <1>; > > - function = LED_FUNCTION_STATUS; > > - color = <LED_COLOR_ID_RED>; > > - }; > > - > > - led@2 { > > - reg = <2>; > > - function = LED_FUNCTION_STATUS; > > - color = <LED_COLOR_ID_GREEN>; > > - }; > > - > > - led@3 { > > - reg = <3>; > > - function = LED_FUNCTION_STATUS; > > - color = <LED_COLOR_ID_BLUE>; > > - }; > > - }; > > - }; > > - > > - vreg_wlan: wlan-regulator { > > - compatible = "regulator-fixed"; > > - > > - regulator-name = "wl-reg"; > > - regulator-min-microvolt = <3300000>; > > - regulator-max-microvolt = <3300000>; > > - > > - gpio = <&gpio_expander 8 GPIO_ACTIVE_HIGH>; > > - enable-active-high; > > - }; > > - > > - vreg_panel: panel-regulator { > > - compatible = "regulator-fixed"; > > - > > - pinctrl-names = "default"; > > - pinctrl-0 = <&panel_en_pin>; > > - > > - regulator-name = "panel-vddr-reg"; > > - regulator-min-microvolt = <1500000>; > > - regulator-max-microvolt = <1500000>; > > - > > - gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>; > > - enable-active-high; > > - }; > > - > > - vreg_vph_pwr: vreg-vph-pwr { > > - compatible = "regulator-fixed"; > > - regulator-name = "vph-pwr"; > > - > > - regulator-min-microvolt = <3600000>; > > - regulator-max-microvolt = <3600000>; > > - > > - regulator-always-on; > > - }; > > -}; > > - > > -&blsp1_i2c2 { > > - status = "okay"; > > - > > - touchscreen@20 { > > - compatible = "syna,rmi4-i2c"; > > - reg = <0x20>; > > - > > - interrupt-parent = <&pma8084_gpios>; > > - interrupts = <8 IRQ_TYPE_EDGE_FALLING>; > > - > > - vdd-supply = <&max77826_ldo13>; > > - vio-supply = <&pma8084_lvs2>; > > - > > - pinctrl-names = "default"; > > - pinctrl-0 = <&touch_pin>; > > - > > - syna,startup-delay-ms = <100>; > > - > > - #address-cells = <1>; > > - #size-cells = <0>; > > - > > - rmi4-f01@1 { > > - reg = <0x1>; > > - syna,nosleep-mode = <1>; > > - }; > > - > > - rmi4-f12@12 { > > - reg = <0x12>; > > - syna,sensor-type = <1>; > > - }; > > - }; > > -}; > > - > > -&blsp1_i2c6 { > > - status = "okay"; > > - > > - pmic@60 { > > - reg = <0x60>; > > - compatible = "maxim,max77826"; > > - > > - regulators { > > - max77826_ldo1: LDO1 { > > - regulator-min-microvolt = > > <1200000>; > > - regulator-max-microvolt = > > <1200000>; > > - }; > > - > > - max77826_ldo2: LDO2 { > > - regulator-min-microvolt = > > <1000000>; > > - regulator-max-microvolt = > > <1000000>; > > - }; > > - > > - max77826_ldo3: LDO3 { > > - regulator-min-microvolt = > > <1200000>; > > - regulator-max-microvolt = > > <1200000>; > > - }; > > - > > - max77826_ldo4: LDO4 { > > - regulator-min-microvolt = > > <1800000>; > > - regulator-max-microvolt = > > <1800000>; > > - }; > > - > > - max77826_ldo5: LDO5 { > > - regulator-min-microvolt = > > <1800000>; > > - regulator-max-microvolt = > > <1800000>; > > - }; > > - > > - max77826_ldo6: LDO6 { > > - regulator-min-microvolt = > > <1800000>; > > - regulator-max-microvolt = > > <3300000>; > > - }; > > - > > - max77826_ldo7: LDO7 { > > - regulator-min-microvolt = > > <1800000>; > > - regulator-max-microvolt = > > <1800000>; > > - }; > > - > > - max77826_ldo8: LDO8 { > > - regulator-min-microvolt = > > <1800000>; > > - regulator-max-microvolt = > > <3300000>; > > - }; > > - > > - max77826_ldo9: LDO9 { > > - regulator-min-microvolt = > > <1800000>; > > - regulator-max-microvolt = > > <1800000>; > > - }; > > - > > - max77826_ldo10: LDO10 { > > - regulator-min-microvolt = > > <2800000>; > > - regulator-max-microvolt = > > <2950000>; > > - }; > > - > > - max77826_ldo11: LDO11 { > > - regulator-min-microvolt = > > <2700000>; > > - regulator-max-microvolt = > > <2950000>; > > - }; > > - > > - max77826_ldo12: LDO12 { > > - regulator-min-microvolt = > > <2500000>; > > - regulator-max-microvolt = > > <3300000>; > > - }; > > - > > - max77826_ldo13: LDO13 { > > - regulator-min-microvolt = > > <3300000>; > > - regulator-max-microvolt = > > <3300000>; > > - }; > > - > > - max77826_ldo14: LDO14 { > > - regulator-min-microvolt = > > <3300000>; > > - regulator-max-microvolt = > > <3300000>; > > - }; > > - > > - max77826_ldo15: LDO15 { > > - regulator-min-microvolt = > > <1800000>; > > - regulator-max-microvolt = > > <1800000>; > > - }; > > - > > - max77826_buck: BUCK { > > - regulator-min-microvolt = > > <1225000>; > > - regulator-max-microvolt = > > <1225000>; > > - }; > > - > > - max77826_buckboost: BUCKBOOST { > > - regulator-min-microvolt = > > <3400000>; > > - regulator-max-microvolt = > > <3400000>; > > - }; > > - }; > > - }; > > -}; > > - > > -&blsp1_uart2 { > > - status = "okay"; > > -}; > > - > > -&blsp2_i2c6 { > > - status = "okay"; > > - > > - fuelgauge@36 { > > - compatible = "maxim,max17048"; > > - reg = <0x36>; > > - > > - maxim,double-soc; > > - maxim,rcomp = /bits/ 8 <0x56>; > > - > > - interrupt-parent = <&pma8084_gpios>; > > - interrupts = <21 IRQ_TYPE_LEVEL_LOW>; > > - > > - pinctrl-names = "default"; > > - pinctrl-0 = <&fuelgauge_pin>; > > - }; > > -}; > > - > > -&blsp2_uart2 { > > - status = "okay"; > > - > > - pinctrl-names = "default", "sleep"; > > - pinctrl-0 = <&blsp2_uart2_pins_active>; > > - pinctrl-1 = <&blsp2_uart2_pins_sleep>; > > - > > - bluetooth { > > - compatible = "brcm,bcm43540-bt"; > > - max-speed = <3000000>; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&bt_pins>; > > - device-wakeup-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>; > > - shutdown-gpios = <&gpio_expander 9 > > GPIO_ACTIVE_HIGH>; > > - interrupt-parent = <&tlmm>; > > - interrupts = <75 IRQ_TYPE_LEVEL_HIGH>; > > - interrupt-names = "host-wakeup"; > > - }; > > -}; > > - > > -&gpu { > > - status = "okay"; > > -}; > > - > > -&mdss { > > - status = "okay"; > > -}; > > - > > -&mdss_dsi0 { > > - status = "okay"; > > - > > - vdda-supply = <&pma8084_l2>; > > - vdd-supply = <&pma8084_l22>; > > - vddio-supply = <&pma8084_l12>; > > - > > - panel: panel@0 { > > - reg = <0>; > > - compatible = "samsung,s6e3fa2"; > > - > > - pinctrl-names = "default"; > > - pinctrl-0 = <&panel_te_pin &panel_rst_pin>; > > - > > - iovdd-supply = <&pma8084_lvs4>; > > - vddr-supply = <&vreg_panel>; > > - > > - reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>; > > - > > - port { > > - panel_in: endpoint { > > - remote-endpoint = <&mdss_dsi0_out>; > > - }; > > - }; > > - }; > > -}; > > - > > -&mdss_dsi0_out { > > - remote-endpoint = <&panel_in>; > > - data-lanes = <0 1 2 3>; > > -}; > > - > > -&mdss_dsi0_phy { > > - status = "okay"; > > - > > - vddio-supply = <&pma8084_l12>; > > -}; > > - > > -&pma8084_gpios { > > - gpio_keys_pin_a: gpio-keys-active-state { > > - pins = "gpio2", "gpio3", "gpio5"; > > - function = "normal"; > > - > > - bias-pull-up; > > - power-source = <PMA8084_GPIO_S4>; > > - }; > > - > > - touchkey_pin: touchkey-int-state { > > - pins = "gpio6"; > > - function = "normal"; > > - bias-disable; > > - input-enable; > > - power-source = <PMA8084_GPIO_S4>; > > - }; > > - > > - touch_pin: touchscreen-int-state { > > - pins = "gpio8"; > > - function = "normal"; > > - bias-disable; > > - input-enable; > > - power-source = <PMA8084_GPIO_S4>; > > - }; > > - > > - panel_en_pin: panel-en-state { > > - pins = "gpio14"; > > - function = "normal"; > > - bias-pull-up; > > - power-source = <PMA8084_GPIO_S4>; > > - qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; > > - }; > > - > > - wlan_sleep_clk_pin: wlan-sleep-clk-state { > > - pins = "gpio16"; > > - function = "func2"; > > - > > - output-high; > > - power-source = <PMA8084_GPIO_S4>; > > - qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>; > > - }; > > - > > - panel_rst_pin: panel-rst-state { > > - pins = "gpio17"; > > - function = "normal"; > > - bias-disable; > > - power-source = <PMA8084_GPIO_S4>; > > - qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; > > - }; > > - > > - fuelgauge_pin: fuelgauge-int-state { > > - pins = "gpio21"; > > - function = "normal"; > > - bias-disable; > > - input-enable; > > - power-source = <PMA8084_GPIO_S4>; > > - }; > > -}; > > - > > -&remoteproc_adsp { > > - status = "okay"; > > - cx-supply = <&pma8084_s2>; > > -}; > > - > > -&remoteproc_mss { > > - status = "okay"; > > - cx-supply = <&pma8084_s2>; > > - mss-supply = <&pma8084_s6>; > > - mx-supply = <&pma8084_s1>; > > - pll-supply = <&pma8084_l12>; > > -}; > > - > > -&rpm_requests { > > - regulators-0 { > > - compatible = "qcom,rpm-pma8084-regulators"; > > - > > - pma8084_s1: s1 { > > - regulator-min-microvolt = <675000>; > > - regulator-max-microvolt = <1050000>; > > - regulator-always-on; > > - }; > > - > > - pma8084_s2: s2 { > > - regulator-min-microvolt = <500000>; > > - regulator-max-microvolt = <1050000>; > > - }; > > - > > - pma8084_s3: s3 { > > - regulator-min-microvolt = <1300000>; > > - regulator-max-microvolt = <1300000>; > > - }; > > - > > - pma8084_s4: s4 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <1800000>; > > - }; > > - > > - pma8084_s5: s5 { > > - regulator-min-microvolt = <2150000>; > > - regulator-max-microvolt = <2150000>; > > - }; > > - > > - pma8084_s6: s6 { > > - regulator-min-microvolt = <1050000>; > > - regulator-max-microvolt = <1050000>; > > - }; > > - > > - pma8084_l1: l1 { > > - regulator-min-microvolt = <1225000>; > > - regulator-max-microvolt = <1225000>; > > - }; > > - > > - pma8084_l2: l2 { > > - regulator-min-microvolt = <1200000>; > > - regulator-max-microvolt = <1200000>; > > - }; > > - > > - pma8084_l3: l3 { > > - regulator-min-microvolt = <1050000>; > > - regulator-max-microvolt = <1200000>; > > - }; > > - > > - pma8084_l4: l4 { > > - regulator-min-microvolt = <1200000>; > > - regulator-max-microvolt = <1225000>; > > - }; > > - > > - pma8084_l5: l5 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <1800000>; > > - }; > > - > > - pma8084_l6: l6 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <1800000>; > > - }; > > - > > - pma8084_l7: l7 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <1800000>; > > - }; > > - > > - pma8084_l8: l8 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <1800000>; > > - }; > > - > > - pma8084_l9: l9 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <2950000>; > > - }; > > - > > - pma8084_l10: l10 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <2950000>; > > - }; > > - > > - pma8084_l11: l11 { > > - regulator-min-microvolt = <1300000>; > > - regulator-max-microvolt = <1300000>; > > - }; > > - > > - pma8084_l12: l12 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <1800000>; > > - regulator-always-on; > > - }; > > - > > - pma8084_l13: l13 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <2950000>; > > - }; > > - > > - pma8084_l14: l14 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <1800000>; > > - }; > > - > > - pma8084_l15: l15 { > > - regulator-min-microvolt = <2050000>; > > - regulator-max-microvolt = <2050000>; > > - }; > > - > > - pma8084_l16: l16 { > > - regulator-min-microvolt = <2700000>; > > - regulator-max-microvolt = <2700000>; > > - }; > > - > > - pma8084_l17: l17 { > > - regulator-min-microvolt = <2850000>; > > - regulator-max-microvolt = <2850000>; > > - }; > > - > > - pma8084_l18: l18 { > > - regulator-min-microvolt = <2850000>; > > - regulator-max-microvolt = <2850000>; > > - }; > > - > > - pma8084_l19: l19 { > > - regulator-min-microvolt = <3300000>; > > - regulator-max-microvolt = <3300000>; > > - }; > > - > > - pma8084_l20: l20 { > > - regulator-min-microvolt = <2950000>; > > - regulator-max-microvolt = <2950000>; > > - regulator-system-load = <200000>; > > - regulator-allow-set-load; > > - }; > > - > > - pma8084_l21: l21 { > > - regulator-min-microvolt = <2950000>; > > - regulator-max-microvolt = <2950000>; > > - regulator-system-load = <200000>; > > - regulator-allow-set-load; > > - }; > > - > > - pma8084_l22: l22 { > > - regulator-min-microvolt = <3000000>; > > - regulator-max-microvolt = <3300000>; > > - }; > > - > > - pma8084_l23: l23 { > > - regulator-min-microvolt = <3000000>; > > - regulator-max-microvolt = <3000000>; > > - }; > > - > > - pma8084_l24: l24 { > > - regulator-min-microvolt = <3075000>; > > - regulator-max-microvolt = <3075000>; > > - }; > > - > > - pma8084_l25: l25 { > > - regulator-min-microvolt = <2100000>; > > - regulator-max-microvolt = <2100000>; > > - }; > > - > > - pma8084_l26: l26 { > > - regulator-min-microvolt = <1800000>; > > - regulator-max-microvolt = <2050000>; > > - }; > > - > > - pma8084_l27: l27 { > > - regulator-min-microvolt = <1000000>; > > - regulator-max-microvolt = <1225000>; > > - }; > > - > > - pma8084_lvs1: lvs1 {}; > > - pma8084_lvs2: lvs2 {}; > > - pma8084_lvs3: lvs3 {}; > > - pma8084_lvs4: lvs4 {}; > > - > > - pma8084_5vs1: 5vs1 {}; > > - }; > > -}; > > - > > -&sdhc_1 { > > - status = "okay"; > > - > > - vmmc-supply = <&pma8084_l20>; > > - vqmmc-supply = <&pma8084_s4>; > > - > > - pinctrl-names = "default", "sleep"; > > - pinctrl-0 = <&sdc1_on>; > > - pinctrl-1 = <&sdc1_off>; > > -}; > > - > > -&sdhc_2 { > > - status = "okay"; > > - max-frequency = <100000000>; > > - vmmc-supply = <&vreg_wlan>; > > - vqmmc-supply = <&pma8084_s4>; > > - non-removable; > > - > > - pinctrl-names = "default", "sleep"; > > - pinctrl-0 = <&sdc2_on>; > > - pinctrl-1 = <&sdc2_off>; > > - > > - wifi@1 { > > - reg = <1>; > > - compatible = "brcm,bcm4329-fmac"; > > - > > - interrupt-parent = <&tlmm>; > > - interrupts = <92 IRQ_TYPE_LEVEL_HIGH>; > > - interrupt-names = "host-wake"; > > - > > - pinctrl-names = "default"; > > - pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>; > > - }; > > -}; > > - > > -&sdhc_3 { > > - status = "okay"; > > - max-frequency = <100000000>; > > - vmmc-supply = <&pma8084_l21>; > > - vqmmc-supply = <&pma8084_l13>; > > - > > - /* > > - * cd-gpio is intentionally disabled. If enabled, an SD > > card > > - * present during boot is not initialized correctly. > > Without > > - * cd-gpios the driver resorts to polling, so hotplug > > works. > > - */ > > - pinctrl-names = "default"; > > - pinctrl-0 = <&sdc3_on /* &sdhc3_cd_pin */>; > > - /* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; */ > > -}; > > - > > -&tlmm { > > - /* This seems suspicious, but somebody with this device > > should look into it. */ > > - blsp2_uart2_pins_active: blsp2-uart2-pins-active-state { > > - pins = "gpio45", "gpio46", "gpio47", "gpio48"; > > - function = "blsp_uart8"; > > - drive-strength = <8>; > > - bias-disable; > > - }; > > - > > - blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state { > > - pins = "gpio45", "gpio46", "gpio47", "gpio48"; > > - function = "gpio"; > > - drive-strength = <2>; > > - bias-pull-down; > > - }; > > - > > - bt_pins: bt-pins-state { > > - hostwake-pins { > > - pins = "gpio75"; > > - function = "gpio"; > > - drive-strength = <16>; > > - }; > > - > > - devwake-pins { > > - pins = "gpio91"; > > - function = "gpio"; > > - drive-strength = <2>; > > - }; > > - }; > > - > > - sdc1_on: sdhc1-on-state { > > - clk-pins { > > - pins = "sdc1_clk"; > > - drive-strength = <4>; > > - bias-disable; > > - }; > > - > > - cmd-data-pins { > > - pins = "sdc1_cmd", "sdc1_data"; > > - drive-strength = <4>; > > - bias-pull-up; > > - }; > > - }; > > - > > - sdc3_on: sdc3-on-state { > > - pins = "gpio35", "gpio36", "gpio37", "gpio38", > > "gpio39", "gpio40"; > > - function = "sdc3"; > > - drive-strength = <8>; > > - bias-disable; > > - }; > > - > > - sdhc3_cd_pin: sdc3-cd-on-state { > > - pins = "gpio62"; > > - function = "gpio"; > > - > > - drive-strength = <2>; > > - bias-disable; > > - }; > > - > > - sdc2_on: sdhc2-on-state { > > - clk-pins { > > - pins = "sdc2_clk"; > > - drive-strength = <6>; > > - bias-disable; > > - }; > > - > > - cmd-data-pins { > > - pins = "sdc2_cmd", "sdc2_data"; > > - drive-strength = <6>; > > - bias-pull-up; > > - }; > > - }; > > - > > - i2c_touchkey_pins: i2c-touchkey-state { > > - pins = "gpio95", "gpio96"; > > - function = "gpio"; > > - bias-pull-up; > > - }; > > - > > - i2c_led_gpioex_pins: i2c-led-gpioex-state { > > - pins = "gpio120", "gpio121"; > > - function = "gpio"; > > - bias-pull-down; > > - }; > > - > > - gpioex_pin: gpioex-state { > > - pins = "gpio145"; > > - function = "gpio"; > > - bias-pull-up; > > - drive-strength = <2>; > > - }; > > - > > - wifi_pin: wifi-state { > > - pins = "gpio92"; > > - function = "gpio"; > > - bias-pull-down; > > - }; > > - > > - panel_te_pin: panel-state { > > - pins = "gpio12"; > > - function = "mdp_vsync"; > > - drive-strength = <2>; > > - bias-disable; > > - }; > > -}; > > - > > -&usb { > > - status = "okay"; > > - > > - phys = <&usb_hs1_phy>; > > - phy-select = <&tcsr 0xb000 0>; > > - > > - hnp-disable; > > - srp-disable; > > - adp-disable; > > -}; > > - > > -&usb_hs1_phy { > > - status = "okay"; > > - > > - v1p8-supply = <&pma8084_l6>; > > - v3p3-supply = <&pma8084_l24>; > > - > > - qcom,init-seq = /bits/ 8 <0x1 0x64>; > > -}; > > +// SPDX-License-Identifier: GPL-2.0 > > +#include "qcom-msm8974pro-samsung-klte-common.dtsi" > > + > > +/ { > > + model = "Samsung Galaxy S5"; > > + compatible = "samsung,klte", "qcom,msm8974pro", > > "qcom,msm8974"; > > +}; > > + > > +&i2c_led_gpio { > > + scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | > > GPIO_OPEN_DRAIN)>; > > + sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | > > GPIO_OPEN_DRAIN)>; > > +}; > > + > > +&i2c_led_gpioex_pins { > > + pins = "gpio120", "gpio121"; > > +}; >
On 13.02.2024 13:58, Rong Zhang wrote: > Samsung Galaxy S5 has many variants. Variants that support LTE use klte* > as their codename. Currently, the only supported one is the one without > any suffix, namely, klte. It is known that other klte* variants have > only minor differences compared to klte and can mostly work with the > klte DTB. > > Split the common part into a common DTSI so that it can be imported in > the DTS of klte and other klte* variants. > > Signed-off-by: Rong Zhang <i@rong.moe> > --- > ... qcom-msm8974pro-samsung-klte-common.dtsi} | 7 +- > .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833 +----------------- > 2 files changed, 17 insertions(+), 823 deletions(-) > copy arch/arm/boot/dts/qcom/{qcom-msm8974pro-samsung-klte.dts => qcom-msm8974pro-samsung-klte-common.dtsi} (98%) > rewrite arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts (99%) > Tested on regular Samsung Galaxy S5 (qcom-msm8974pro-samsung-klte). Tested-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
On Tue, 13 Feb 2024 18:58:35 +0800, Rong Zhang wrote: > Samsung Galaxy S5 has many variants. Currently, the only supported one > is klte. Samsung Galaxy S5 China (kltechn) is the China edition of > klte, and it can mostly work with the klte DTB, with only LEDs and WiFi > missing. > > This patchset splits out the common part of klte DTS into klte-common > DTSI, and adds DTS for kltechn by fixing up the GPIO pins for the LEDs > and GPIO expander connected by the WiFi module. A "brcm,board-type" > property is added into the wifi@1 node of the common DTSI to allow all > klte* variants to load the same NVRAM file. > > [...] Applied, thanks! [1/4] ARM: dts: qcom: msm8974: Split out common part of samsung-klte commit: 16dcf57734620edea32339df2ff8875da00a34c1 [2/4] ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type commit: a730364f16ddc65268d828acdbf17f2a762e84be [4/4] ARM: dts: qcom: msm8974: Add DTS for Samsung Galaxy S5 China (kltechn) commit: 01088e255a27f396dcbc412e10b26cd14be5ff19 Best regards,
Samsung Galaxy S5 has many variants. Currently, the only supported one is klte. Samsung Galaxy S5 China (kltechn) is the China edition of klte, and it can mostly work with the klte DTB, with only LEDs and WiFi missing. This patchset splits out the common part of klte DTS into klte-common DTSI, and adds DTS for kltechn by fixing up the GPIO pins for the LEDs and GPIO expander connected by the WiFi module. A "brcm,board-type" property is added into the wifi@1 node of the common DTSI to allow all klte* variants to load the same NVRAM file. Signed-off-by: Rong Zhang <i@rong.moe> --- Changes in v3: - Regenerate the patchset with code move detection (-B -M -C). - Fix "changes in v2" below to state why a tag was not added. - Link to v2: https://lore.kernel.org/r/20240127172155.63624-1-i@rong.moe/ Changes in v2: - Split out the common part of klte DTS into klte-common DTSI. - Fix dt-binding to make it consistent with the compatible chain in kltechn DTS. In other words, make kltechn a subvariant of klte. - [PATCH 3/4] in v1 had received "Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>" but this was not added in the v2 patch due to the change. - Link to v1: https://lore.kernel.org/r/20240121154010.168440-1-i@rong.moe/ Rong Zhang (4): ARM: dts: qcom: msm8974: Split out common part of samsung-klte ARM: dts: qcom: msm8974-klte-common: Pin WiFi board type dt-bindings: arm: qcom: Add Samsung Galaxy S5 China (kltechn) ARM: dts: qcom: msm8974: Add DTS for Samsung Galaxy S5 China (kltechn) .../devicetree/bindings/arm/qcom.yaml | 7 + arch/arm/boot/dts/qcom/Makefile | 1 + ... qcom-msm8974pro-samsung-klte-common.dtsi} | 13 +- .../dts/qcom/qcom-msm8974pro-samsung-klte.dts | 833 +----------------- .../qcom/qcom-msm8974pro-samsung-kltechn.dts | 16 + 5 files changed, 47 insertions(+), 823 deletions(-) copy arch/arm/boot/dts/qcom/{qcom-msm8974pro-samsung-klte.dts => qcom-msm8974pro-samsung-klte-common.dtsi} (98%) rewrite arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts (99%) create mode 100644 arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts base-commit: c664e16bb1ba1c8cf1d7ecf3df5fd83bbb8ac15a