Re: [PATCH V2 3/5] arm64: dts: qcom: pmk8350: Add PMIC peripherals for pmk8350

Matthias Kaehlcke
2021-04-02T18:45:37Z

On Thu, Apr 01, 2021 at 02:43:14PM +0530, satya priya wrote:
> subject: arm64: dts: qcom: pmk8350: Add PMIC peripherals for pmk8350

same nit as for 1/5: maybe just 'arm64: dts: qcom: Add pml7350 support/.dtsi'
or similar since this adds the initial .dtsi for the pmk8350?

> Add PON, GPIO, RTC and other PMIC infra modules support for pmk8350.

nit: also mention that it adds the pmk8350 .dtsi in the first place.

> Signed-off-by: satya priya <skakit@codeaurora.org>
> ---
> arch/arm64/boot/dts/qcom/pmk8350.dtsi | 100 ++++++++++++++++++++++++++++++++++
> 1 file changed, 100 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/pmk8350.dtsi
>
> diff --git a/arch/arm64/boot/dts/qcom/pmk8350.dtsi b/arch/arm64/boot/dts/qcom/pmk8350.dtsi
> new file mode 100644
> index 0000000..13631f2
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/pmk8350.dtsi
> @@ -0,0 +1,100 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +// Copyright (c) 2021, The Linux Foundation. All rights reserved.
> +
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/input/linux-event-codes.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/spmi/spmi.h>
> +#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
> +#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
> +#include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
> +#include <dt-bindings/iio/qcom,spmi-adc7-pmr735b.h>
> +
> +&spmi_bus {
> + pmk8350: pmic@0 {
> + compatible = "qcom,pmk8350", "qcom,spmi-pmic";

Please provide a link to the binding if it has been sent.

> + reg = <0x0 SPMI_USID>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pmk8350_pon: pon@1300 {
> + compatible = "qcom,pm8998-pon";
> + reg = <0x1300>;
> +
> + pwrkey {
> + compatible = "qcom,pmk8350-pwrkey";
> + interrupts = <0x0 0x13 0x7 IRQ_TYPE_EDGE_BOTH>;
> + linux,code = <KEY_POWER>;
> + };
> +
> + resin {
> + compatible = "qcom,pmk8350-resin";
> + interrupts = <0x0 0x13 0x6 IRQ_TYPE_EDGE_BOTH>;
> + linux,code = <KEY_VOLUMEDOWN>;
> + };

Is the usage of this keys really universal across different boards?

At least for the volume down key for most PMICs the config is in the
board file, which seems to make more sense.

> + };
> +
> + pmk8350_vadc: adc@3100 {
> + compatible = "qcom,spmi-adc7";
> + reg = <0x3100>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
> + interrupt-names = "eoc-int-en-set";
> + #io-channel-cells = <1>;
> + io-channel-ranges;
> +
> + pmk8350_die_temp {
> + reg = <PMK8350_ADC7_DIE_TEMP>;
> + label = "pmk8350_die_temp";
> + qcom,pre-scaling = <1 1>;
> + };
> +
> + pm8350_die_temp {
> + reg = <PM8350_ADC7_DIE_TEMP>;
> + label = "pm8350_die_temp";
> + qcom,pre-scaling = <1 1>;
> + };

nit: I think this should be 'alphabetical' order, so 'pm8350_die_temp' should
be before 'pmk8350_die_temp'.

> +
> + pmr735a_die_temp {
> + reg = <PMR735A_ADC7_DIE_TEMP>;
> + label = "pmr735a_die_temp";
> + qcom,pre-scaling = <1 1>;
> + };
> +
> + pmr735b_die_temp {
> + reg = <PMR735B_ADC7_DIE_TEMP>;
> + label = "pmr735b_die_temp";
> + qcom,pre-scaling = <1 1>;
> + };

Is it guaranteed that a board with the pmk8350 will always have the
other 3 PMICs?

> + };
> +
> + pmk8350_adc_tm: adc-tm@3400 {
> + compatible = "qcom,adc-tm7";
> + reg = <0x3400>;
> + interrupts = <0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
> + interrupt-names = "threshold";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + #thermal-sensor-cells = <1>;
> + status = "disabled";
> + };
> +
> + pmk8350_gpios: gpios@b000 {
> + compatible = "qcom,pmk8350-gpio", "qcom,spmi-gpio";
> + reg = <0xb000>;
> + gpio-controller;
> + gpio-ranges = <&pmk8350_gpios 0 0 4>;
> + #gpio-cells = <2>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + pmk8350_rtc: rtc@6100 {

nit: nodes should be ordered by address, hence 'rtc@6100' should be before
'gpios@b000'.

> + compatible = "qcom,pmk8350-rtc";
> + reg = <0x6100>, <0x6200>;
> + reg-names = "rtc", "alarm";
> + interrupts = <0x0 0x62 0x1 IRQ_TYPE_EDGE_RISING>;
> + };
> + };
> +};