mbox series

[v5,00/37] ARM: dts: qcom: cleanup PMIC usage

Message ID 20230827132525.951475-1-dmitry.baryshkov@linaro.org
Headers show
Series ARM: dts: qcom: cleanup PMIC usage | expand

Message

Dmitry Baryshkov Aug. 27, 2023, 1:24 p.m. UTC
While reviewing APQ8064 CPUFreq patchset, Konrad pointed out that PMICs
are not a part of SoC and as such do not belong to the per-SoC files.

Cleanup the way 32-bit Qualcomm platforms treat PMICs:

- Move SSBI PMICs to separate files (as a bonus merging two different
  instances of PM8921, benefitting both platforms).

- Include such PMIC files only from the board files, keeping SoC file
  generic.

- Move RPM regulator definitions to board files too. They do not belong
  to the SoC dtsi files for the same reason.

- Move PMIC-specific GPIOs and supply properties to individual board
  files.

Note, enabling DT schema triggers warnings for pmic:led@48 in
qcom-apq8060-dragonboard.dts. This node uses custom ('cm3605') trigger
to make the LED follow the state of the proximity / ALS device.
Previously [1] Rob pointed out that this is not the best way and the
device should be switched to `trigger-sources' instead. However as I do
not have this device, I'm not brave enough to introduce these changes.

Note2: DT binding changes are largely independent from the DTS changes,
they can be applied separately.

[1] https://lore.kernel.org/linux-arm-msm/20221205220709.GA2713165-robh@kernel.org

Changes since v3:
- Dropped the interrupts/interrupts-extended patch, it is handled by
  dtschema itself (Krzysztof)

Changes since v3:
- Moved PMIC interrupts to board DT files, they are not a property of
  the board, not the SoC.
- Dropped qcom, prefix from ssbi node names in ipq8064 and mdm9615 DT
  files.

Changes since v2:
- Rebased on top of linux-next to fix conflict
- Picked up dt-bindings patches from old, not-fully merged series.
- qcom,pm8921-keypad: droped the no-autorepeat property (Rob, Dmitry)
- Moved qcom,ssbi to /bus/ (Krzysztof)

Changes since v1:
- To ease reviewing break cleanups from the  "split PMIC" patches
  (Konrad).

Dmitry Baryshkov (37):
  dt-bindings: input: qcom,pm8921-keypad: convert to YAML format
  dt-bindings: mfd: qcom-pm8xxx: add missing child nodes
  ARM: dts: qcom: apq8064: correct XOADC register address
  ARM: dts: qcom: msm8960: introduce label for PMIC keypad
  ARM: dts: qcom: msm8660-surf: use keypad label directly
  ARM: dts: qcom: apq8064-nexus7: move sdcc1 node to proper place
  ARM: dts: qcom: mdm9615-wp8548-mangoh-green: group include clauses
  ARM: dts: qcom: strip prefix from PMIC files
  ARM: dts: qcom: apq8064: fix PMIC node labels
  ARM: dts: qcom: mdm9615: fix PMIC node labels
  ARM: dts: qcom: msm8660: fix PMIC node labels
  ARM: dts: qcom: msm8960: fix PMIC node labels
  ARM: dts: qcom: apq8064: move PMIC interrupts to the board files
  ARM: dts: qcom: mdm9615: move PMIC interrupts to the board files
  ARM: dts: qcom: msm8660: move PMIC interrupts to the board files
  ARM: dts: qcom: msm8960: move PMIC interrupts to the board files
  ARM: dts: qcom: msm8960: split PMIC to separate dtsi files
  ARM: dts: qcom: apq8064: split PMICs to separate dtsi files
  ARM: dts: qcom: mdm9615: split PMIC to separate dtsi files
  ARM: dts: qcom: msm8660: split PMIC to separate dtsi files
  ARM: dts: qcom: pm8058: reorder nodes
  ARM: dts: qcom: pm8921: reorder nodes
  ARM: dts: qcom: pm8018: move reg property
  ARM: dts: qcom: pm8921: move reg property
  ARM: dts: qcom: pm8058: use defined IRQ flags
  ARM: dts: qcom: pm8921: switch to interrupts-extended
  ARM: dts: qcom: pm8018: switch to interrupts-extended
  ARM: dts: qcom: pm8058: switch to interrupts-extended
  ARM: dts: qcom: apq8064: move RPM regulators to board files
  ARM: dts: qcom: mdm9615: move RPM regulators to board files
  ARM: dts: qcom: msm8660: move RPM regulators to board files
  ARM: dts: qcom: msm8960: drop useless rpm regulators node
  ARM: dts: qcom: msm8974: move regulators to board files
  ARM: dts: qcom: pm8921: Disable keypad by default
  ARM: dts: qcom: apq8060-dragonboard: rename mpp ADC channels to
    adc-channel
  ARM: dts: qcom: ipq8064: drop qcom, prefix from SSBI node name
  ARM: dts: qcom: mdm9615: drop qcom, prefix from SSBI node name

 .../bindings/input/qcom,pm8921-keypad.yaml    |  89 +++++++
 .../bindings/input/qcom,pm8xxx-keypad.txt     |  90 --------
 .../devicetree/bindings/mfd/qcom-pm8xxx.yaml  |  26 ++-
 arch/arm/boot/dts/qcom/pm8018.dtsi            |  55 +++++
 arch/arm/boot/dts/qcom/pm8058.dtsi            | 159 +++++++++++++
 .../qcom/{qcom-pm8226.dtsi => pm8226.dtsi}    |   0
 arch/arm/boot/dts/qcom/pm8821.dtsi            |  22 ++
 .../qcom/{qcom-pm8841.dtsi => pm8841.dtsi}    |   0
 arch/arm/boot/dts/qcom/pm8921.dtsi            | 137 +++++++++++
 .../qcom/{qcom-pm8941.dtsi => pm8941.dtsi}    |   0
 .../qcom/{qcom-pma8084.dtsi => pma8084.dtsi}  |   0
 .../dts/qcom/{qcom-pmx55.dtsi => pmx55.dtsi}  |   0
 .../dts/qcom/{qcom-pmx65.dtsi => pmx65.dtsi}  |   0
 .../dts/qcom/qcom-apq8026-asus-sparrow.dts    |   2 +-
 .../dts/qcom/qcom-apq8026-huawei-sturgeon.dts |   2 +-
 .../boot/dts/qcom/qcom-apq8026-lg-lenok.dts   |   2 +-
 .../qcom-apq8026-samsung-matisse-wifi.dts     |   2 +-
 .../dts/qcom/qcom-apq8060-dragonboard.dts     | 164 ++++++++-----
 .../dts/qcom/qcom-apq8064-asus-nexus7-flo.dts |  70 +++---
 .../boot/dts/qcom/qcom-apq8064-cm-qs600.dts   |  35 ++-
 .../boot/dts/qcom/qcom-apq8064-ifc6410.dts    |  42 ++--
 .../qcom-apq8064-sony-xperia-lagan-yuga.dts   | 111 +++++----
 arch/arm/boot/dts/qcom/qcom-apq8064.dtsi      | 201 +---------------
 .../dts/qcom/qcom-apq8074-dragonboard.dts     |  31 ++-
 .../boot/dts/qcom/qcom-apq8084-ifc6540.dts    |   2 +-
 arch/arm/boot/dts/qcom/qcom-apq8084-mtp.dts   |   2 +-
 arch/arm/boot/dts/qcom/qcom-ipq8064.dtsi      |   2 +-
 .../qcom/qcom-mdm9615-wp8548-mangoh-green.dts |   4 +-
 .../boot/dts/qcom/qcom-mdm9615-wp8548.dtsi    | 143 +++++++++++-
 arch/arm/boot/dts/qcom/qcom-mdm9615.dtsi      | 183 +--------------
 arch/arm/boot/dts/qcom/qcom-msm8660-surf.dts  |  61 +++--
 arch/arm/boot/dts/qcom/qcom-msm8660.dtsi      | 217 +-----------------
 arch/arm/boot/dts/qcom/qcom-msm8960-cdp.dts   |  27 ++-
 .../qcom/qcom-msm8960-samsung-expressatt.dts  |   7 +-
 arch/arm/boot/dts/qcom/qcom-msm8960.dtsi      |  45 +---
 .../qcom-msm8974-lge-nexus5-hammerhead.dts    |  31 ++-
 .../qcom/qcom-msm8974-sony-xperia-rhine.dtsi  |  31 ++-
 arch/arm/boot/dts/qcom/qcom-msm8974.dtsi      |  27 ---
 .../qcom/qcom-msm8974pro-fairphone-fp2.dts    |  31 ++-
 .../qcom/qcom-msm8974pro-oneplus-bacon.dts    |  31 ++-
 .../dts/qcom/qcom-msm8974pro-samsung-klte.dts |  12 +-
 ...-msm8974pro-sony-xperia-shinano-castor.dts |  31 ++-
 arch/arm/boot/dts/qcom/qcom-sdx55-mtp.dts     |   2 +-
 arch/arm/boot/dts/qcom/qcom-sdx55-t55.dts     |   2 +-
 .../dts/qcom/qcom-sdx55-telit-fn980-tlb.dts   |   2 +-
 arch/arm/boot/dts/qcom/qcom-sdx65-mtp.dts     |   2 +-
 46 files changed, 1162 insertions(+), 973 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/input/qcom,pm8921-keypad.yaml
 delete mode 100644 Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt
 create mode 100644 arch/arm/boot/dts/qcom/pm8018.dtsi
 create mode 100644 arch/arm/boot/dts/qcom/pm8058.dtsi
 rename arch/arm/boot/dts/qcom/{qcom-pm8226.dtsi => pm8226.dtsi} (100%)
 create mode 100644 arch/arm/boot/dts/qcom/pm8821.dtsi
 rename arch/arm/boot/dts/qcom/{qcom-pm8841.dtsi => pm8841.dtsi} (100%)
 create mode 100644 arch/arm/boot/dts/qcom/pm8921.dtsi
 rename arch/arm/boot/dts/qcom/{qcom-pm8941.dtsi => pm8941.dtsi} (100%)
 rename arch/arm/boot/dts/qcom/{qcom-pma8084.dtsi => pma8084.dtsi} (100%)
 rename arch/arm/boot/dts/qcom/{qcom-pmx55.dtsi => pmx55.dtsi} (100%)
 rename arch/arm/boot/dts/qcom/{qcom-pmx65.dtsi => pmx65.dtsi} (100%)

Comments

Konrad Dybcio Aug. 28, 2023, 10:23 a.m. UTC | #1
On 27.08.2023 15:25, Dmitry Baryshkov wrote:
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
"eeh" to not have a commit message at all..

Could at least say something about vendor prefixes being forbidden
in node names to explain the rationale.

Konrad
Konrad Dybcio Aug. 28, 2023, 10:23 a.m. UTC | #2
On 27.08.2023 15:25, Dmitry Baryshkov wrote:
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
Same as p36

Konrad
Konrad Dybcio Aug. 28, 2023, 10:57 a.m. UTC | #3
On 27.08.2023 15:25, Dmitry Baryshkov wrote:
> The interrupt of SSBI PMICs is routed to the SoCs GPIO. As such, it is
> not a property of the SoC, it is a property of the particular board
> (even if it is standard and unified between all devices). Move these
> interrupt specifications to the board files.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad
>  arch/arm/boot/dts/qcom/qcom-apq8060-dragonboard.dts | 4 ++++
>  arch/arm/boot/dts/qcom/qcom-msm8660-surf.dts        | 4 ++++
>  arch/arm/boot/dts/qcom/qcom-msm8660.dtsi            | 2 --
>  3 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/qcom/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom/qcom-apq8060-dragonboard.dts
> index 48fd1a1feea3..e4261d729d35 100644
> --- a/arch/arm/boot/dts/qcom/qcom-apq8060-dragonboard.dts
> +++ b/arch/arm/boot/dts/qcom/qcom-apq8060-dragonboard.dts
> @@ -273,6 +273,10 @@ kxsd9@18 {
>  	};
>  };
>  
> +&pm8058 {
> +	interrupts-extended = <&tlmm 88 IRQ_TYPE_LEVEL_LOW>;
> +};
> +
>  &pm8058_gpio {
>  	dragon_ethernet_gpios: ethernet-state {
>  		pinconf {
> diff --git a/arch/arm/boot/dts/qcom/qcom-msm8660-surf.dts b/arch/arm/boot/dts/qcom/qcom-msm8660-surf.dts
> index 86fbb6dfdc2a..a5441aecd637 100644
> --- a/arch/arm/boot/dts/qcom/qcom-msm8660-surf.dts
> +++ b/arch/arm/boot/dts/qcom/qcom-msm8660-surf.dts
> @@ -34,6 +34,10 @@ &gsbi12_serial {
>  	status = "okay";
>  };
>  
> +&pm8058 {
> +	interrupts-extended = <&tlmm 88 IRQ_TYPE_LEVEL_LOW>;
> +};
> +
>  &pm8058_keypad {
>  	linux,keymap = <
>  		MATRIX_KEY(0, 0, KEY_FN_F1)
> diff --git a/arch/arm/boot/dts/qcom/qcom-msm8660.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8660.dtsi
> index 9217ced108c4..84b0366792d4 100644
> --- a/arch/arm/boot/dts/qcom/qcom-msm8660.dtsi
> +++ b/arch/arm/boot/dts/qcom/qcom-msm8660.dtsi
> @@ -341,8 +341,6 @@ ssbi@500000 {
>  
>  			pm8058: pmic {
>  				compatible = "qcom,pm8058";
> -				interrupt-parent = <&tlmm>;
> -				interrupts = <88 8>;
>  				#interrupt-cells = <2>;
>  				interrupt-controller;
>  				#address-cells = <1>;
Konrad Dybcio Aug. 28, 2023, 10:58 a.m. UTC | #4
On 27.08.2023 15:25, Dmitry Baryshkov wrote:
> The interrupt of SSBI PMICs is routed to the SoCs GPIO. As such, it is
> not a property of the SoC, it is a property of the particular board
> (even if it is standard and unified between all devices). Move these
> interrupt specifications to the board files.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad