Message ID | 20191023090219.15603-9-rnayak@codeaurora.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add device tree support for sc7180 | expand |
Quoting Rajendra Nayak (2019-10-23 02:02:16) > diff --git a/arch/arm64/boot/dts/qcom/pm6150.dtsi b/arch/arm64/boot/dts/qcom/pm6150.dtsi > new file mode 100644 > index 000000000000..20eb928e5ce3 > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/pm6150.dtsi > @@ -0,0 +1,85 @@ > +// SPDX-License-Identifier: BSD-3-Clause > +// Copyright (c) 2019, The Linux Foundation. All rights reserved. > + > +#include <dt-bindings/iio/qcom,spmi-vadc.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/thermal/thermal.h> > + > +&spmi_bus { > + pm6150_lsid0: pmic@0 { > + compatible = "qcom,pm6150", "qcom,spmi-pmic"; > + reg = <0x0 SPMI_USID>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + pm6150_pon: pon@800 { > + compatible = "qcom,pm8998-pon"; > + reg = <0x800>; > + mode-bootloader = <0x2>; > + mode-recovery = <0x1>; Can this have status = "disabled"? Or is the idea that if the pmic power button isn't used it should be disabled in the board dts file? > + > + pwrkey { > + compatible = "qcom,pm8941-pwrkey"; > + interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>; > + debounce = <15625>; > + bias-pull-up; > + linux,code = <KEY_POWER>; > + }; > + }; > + > + pm6150_temp: temp-alarm@2400 { > + compatible = "qcom,spmi-temp-alarm"; > + reg = <0x2400>; > + interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_RISING>; > + io-channels = <&pm6150_adc ADC5_DIE_TEMP>; > + io-channel-names = "thermal"; > + #thermal-sensor-cells = <0>; > + }; > + > + pm6150_adc: adc@3100 { > + compatible = "qcom,spmi-adc5"; > + reg = <0x3100>; > + interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; > + #address-cells = <1>; > + #size-cells = <0>; > + #io-channel-cells = <1>; > + > + adc-chan@ADC5_DIE_TEMP { > + reg = <ADC5_DIE_TEMP>; > + label = "die_temp"; > + }; > + }; > + > + pm6150_gpio: gpios@c000 { > + compatible = "qcom,pm6150-gpio", "qcom,spmi-gpio"; > + reg = <0xc000 0xa00>; Drop the size? > + gpio-controller; > + #gpio-cells = <2>; > + interrupts = <0 0xc0 0 IRQ_TYPE_NONE>, > + <0 0xc1 0 IRQ_TYPE_NONE>, > + <0 0xc2 0 IRQ_TYPE_NONE>, > + <0 0xc3 0 IRQ_TYPE_NONE>, > + <0 0xc4 0 IRQ_TYPE_NONE>, > + <0 0xc5 0 IRQ_TYPE_NONE>, > + <0 0xc6 0 IRQ_TYPE_NONE>, > + <0 0xc7 0 IRQ_TYPE_NONE>, > + <0 0xc8 0 IRQ_TYPE_NONE>, > + <0 0xc9 0 IRQ_TYPE_NONE>; Isn't this supposed to go away? > + > + interrupt-names = "pm6150_gpio1", "pm6150_gpio2", > + "pm6150_gpio3", "pm6150_gpio4", > + "pm6150_gpio5", "pm6150_gpio6", > + "pm6150_gpio7", "pm6150_gpio8", > + "pm6150_gpio9", "pm6150_gpio10"; And this? And have gpio-ranges and use the irqdomain work. Basically, should look like pm8998. > + }; > + }; > + > + pm6150_lsid1: pmic@1 { > + compatible = "qcom,pm6150", "qcom,spmi-pmic"; > + reg = <0x1 SPMI_USID>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > +};
On 2019-10-29 22:08, Stephen Boyd wrote: > Quoting Rajendra Nayak (2019-10-23 02:02:16) >> diff --git a/arch/arm64/boot/dts/qcom/pm6150.dtsi >> b/arch/arm64/boot/dts/qcom/pm6150.dtsi >> new file mode 100644 >> index 000000000000..20eb928e5ce3 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/qcom/pm6150.dtsi >> @@ -0,0 +1,85 @@ >> +// SPDX-License-Identifier: BSD-3-Clause >> +// Copyright (c) 2019, The Linux Foundation. All rights reserved. >> + >> +#include <dt-bindings/iio/qcom,spmi-vadc.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/thermal/thermal.h> >> + >> +&spmi_bus { >> + pm6150_lsid0: pmic@0 { >> + compatible = "qcom,pm6150", "qcom,spmi-pmic"; >> + reg = <0x0 SPMI_USID>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + pm6150_pon: pon@800 { >> + compatible = "qcom,pm8998-pon"; >> + reg = <0x800>; >> + mode-bootloader = <0x2>; >> + mode-recovery = <0x1>; > > Can this have status = "disabled"? Or is the idea that if the pmic > power > button isn't used it should be disabled in the board dts file? > Yes. The idea is to go with latter option. Disable it in the board dts file if the pmic power button is not used. >> + >> + pwrkey { >> + compatible = "qcom,pm8941-pwrkey"; >> + interrupts = <0x0 0x8 0 >> IRQ_TYPE_EDGE_BOTH>; >> + debounce = <15625>; >> + bias-pull-up; >> + linux,code = <KEY_POWER>; >> + }; >> + }; >> + >> + pm6150_temp: temp-alarm@2400 { >> + compatible = "qcom,spmi-temp-alarm"; >> + reg = <0x2400>; >> + interrupts = <0x0 0x24 0x0 >> IRQ_TYPE_EDGE_RISING>; >> + io-channels = <&pm6150_adc ADC5_DIE_TEMP>; >> + io-channel-names = "thermal"; >> + #thermal-sensor-cells = <0>; >> + }; >> + >> + pm6150_adc: adc@3100 { >> + compatible = "qcom,spmi-adc5"; >> + reg = <0x3100>; >> + interrupts = <0x0 0x31 0x0 >> IRQ_TYPE_EDGE_RISING>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + #io-channel-cells = <1>; >> + >> + adc-chan@ADC5_DIE_TEMP { >> + reg = <ADC5_DIE_TEMP>; >> + label = "die_temp"; >> + }; >> + }; >> + >> + pm6150_gpio: gpios@c000 { >> + compatible = "qcom,pm6150-gpio", >> "qcom,spmi-gpio"; >> + reg = <0xc000 0xa00>; > > Drop the size? > Will drop it in next series. >> + gpio-controller; >> + #gpio-cells = <2>; >> + interrupts = <0 0xc0 0 IRQ_TYPE_NONE>, >> + <0 0xc1 0 IRQ_TYPE_NONE>, >> + <0 0xc2 0 IRQ_TYPE_NONE>, >> + <0 0xc3 0 IRQ_TYPE_NONE>, >> + <0 0xc4 0 IRQ_TYPE_NONE>, >> + <0 0xc5 0 IRQ_TYPE_NONE>, >> + <0 0xc6 0 IRQ_TYPE_NONE>, >> + <0 0xc7 0 IRQ_TYPE_NONE>, >> + <0 0xc8 0 IRQ_TYPE_NONE>, >> + <0 0xc9 0 IRQ_TYPE_NONE>; > > Isn't this supposed to go away? > Yes. We can remove them if we want to go with the way done for pm8998. >> + >> + interrupt-names = "pm6150_gpio1", >> "pm6150_gpio2", >> + "pm6150_gpio3", >> "pm6150_gpio4", >> + "pm6150_gpio5", >> "pm6150_gpio6", >> + "pm6150_gpio7", >> "pm6150_gpio8", >> + "pm6150_gpio9", >> "pm6150_gpio10"; > > And this? And have gpio-ranges and use the irqdomain work. Basically, > should look like pm8998. Ok.. We can go ahead with the pm8998 way as well. We will address it in next series. > >> + }; >> + }; >> + >> + pm6150_lsid1: pmic@1 { >> + compatible = "qcom,pm6150", "qcom,spmi-pmic"; >> + reg = <0x1 SPMI_USID>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + }; >> +};
Quoting kgunda@codeaurora.org (2019-10-30 00:06:05) > On 2019-10-29 22:08, Stephen Boyd wrote: > > Quoting Rajendra Nayak (2019-10-23 02:02:16) > >> diff --git a/arch/arm64/boot/dts/qcom/pm6150.dtsi > >> b/arch/arm64/boot/dts/qcom/pm6150.dtsi > >> new file mode 100644 > >> index 000000000000..20eb928e5ce3 > >> --- /dev/null > >> +++ b/arch/arm64/boot/dts/qcom/pm6150.dtsi > >> @@ -0,0 +1,85 @@ > >> +// SPDX-License-Identifier: BSD-3-Clause > >> +// Copyright (c) 2019, The Linux Foundation. All rights reserved. > >> + > >> +#include <dt-bindings/iio/qcom,spmi-vadc.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/thermal/thermal.h> > >> + > >> +&spmi_bus { > >> + pm6150_lsid0: pmic@0 { > >> + compatible = "qcom,pm6150", "qcom,spmi-pmic"; > >> + reg = <0x0 SPMI_USID>; > >> + #address-cells = <1>; > >> + #size-cells = <0>; > >> + > >> + pm6150_pon: pon@800 { > >> + compatible = "qcom,pm8998-pon"; > >> + reg = <0x800>; > >> + mode-bootloader = <0x2>; > >> + mode-recovery = <0x1>; > > > > Can this have status = "disabled"? Or is the idea that if the pmic > > power > > button isn't used it should be disabled in the board dts file? > > > Yes. The idea is to go with latter option. Disable it in the board dts > file if the > pmic power button is not used. Ok. Thanks. > >> + > >> + interrupt-names = "pm6150_gpio1", > >> "pm6150_gpio2", > >> + "pm6150_gpio3", > >> "pm6150_gpio4", > >> + "pm6150_gpio5", > >> "pm6150_gpio6", > >> + "pm6150_gpio7", > >> "pm6150_gpio8", > >> + "pm6150_gpio9", > >> "pm6150_gpio10"; > > > > And this? And have gpio-ranges and use the irqdomain work. Basically, > > should look like pm8998. > Ok.. We can go ahead with the pm8998 way as well. We will address it in > next series. Yes please use the pm8998 way..
diff --git a/arch/arm64/boot/dts/qcom/pm6150.dtsi b/arch/arm64/boot/dts/qcom/pm6150.dtsi new file mode 100644 index 000000000000..20eb928e5ce3 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/pm6150.dtsi @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: BSD-3-Clause +// Copyright (c) 2019, The Linux Foundation. All rights reserved. + +#include <dt-bindings/iio/qcom,spmi-vadc.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/thermal/thermal.h> + +&spmi_bus { + pm6150_lsid0: pmic@0 { + compatible = "qcom,pm6150", "qcom,spmi-pmic"; + reg = <0x0 SPMI_USID>; + #address-cells = <1>; + #size-cells = <0>; + + pm6150_pon: pon@800 { + compatible = "qcom,pm8998-pon"; + reg = <0x800>; + mode-bootloader = <0x2>; + mode-recovery = <0x1>; + + pwrkey { + compatible = "qcom,pm8941-pwrkey"; + interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>; + debounce = <15625>; + bias-pull-up; + linux,code = <KEY_POWER>; + }; + }; + + pm6150_temp: temp-alarm@2400 { + compatible = "qcom,spmi-temp-alarm"; + reg = <0x2400>; + interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_RISING>; + io-channels = <&pm6150_adc ADC5_DIE_TEMP>; + io-channel-names = "thermal"; + #thermal-sensor-cells = <0>; + }; + + pm6150_adc: adc@3100 { + compatible = "qcom,spmi-adc5"; + reg = <0x3100>; + interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; + #address-cells = <1>; + #size-cells = <0>; + #io-channel-cells = <1>; + + adc-chan@ADC5_DIE_TEMP { + reg = <ADC5_DIE_TEMP>; + label = "die_temp"; + }; + }; + + pm6150_gpio: gpios@c000 { + compatible = "qcom,pm6150-gpio", "qcom,spmi-gpio"; + reg = <0xc000 0xa00>; + gpio-controller; + #gpio-cells = <2>; + interrupts = <0 0xc0 0 IRQ_TYPE_NONE>, + <0 0xc1 0 IRQ_TYPE_NONE>, + <0 0xc2 0 IRQ_TYPE_NONE>, + <0 0xc3 0 IRQ_TYPE_NONE>, + <0 0xc4 0 IRQ_TYPE_NONE>, + <0 0xc5 0 IRQ_TYPE_NONE>, + <0 0xc6 0 IRQ_TYPE_NONE>, + <0 0xc7 0 IRQ_TYPE_NONE>, + <0 0xc8 0 IRQ_TYPE_NONE>, + <0 0xc9 0 IRQ_TYPE_NONE>; + + interrupt-names = "pm6150_gpio1", "pm6150_gpio2", + "pm6150_gpio3", "pm6150_gpio4", + "pm6150_gpio5", "pm6150_gpio6", + "pm6150_gpio7", "pm6150_gpio8", + "pm6150_gpio9", "pm6150_gpio10"; + }; + }; + + pm6150_lsid1: pmic@1 { + compatible = "qcom,pm6150", "qcom,spmi-pmic"; + reg = <0x1 SPMI_USID>; + #address-cells = <1>; + #size-cells = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/pm6150l.dtsi b/arch/arm64/boot/dts/qcom/pm6150l.dtsi new file mode 100644 index 000000000000..b17bb1af9367 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/pm6150l.dtsi @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: BSD-3-Clause +// Copyright (c) 2019, The Linux Foundation. All rights reserved. + +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/spmi/spmi.h> + +&spmi_bus { + pm6150l_lsid4: pmic@4 { + compatible = "qcom,pm6150l", "qcom,spmi-pmic"; + reg = <0x4 SPMI_USID>; + #address-cells = <1>; + #size-cells = <0>; + + pm6150l_gpios: gpios@c000 { + compatible = "qcom,pm6150l-gpio", "qcom,spmi-gpio"; + reg = <0xc000 0xc00>; + gpio-controller; + #gpio-cells = <2>; + interrupts = <4 0xc0 0 IRQ_TYPE_NONE>, + <4 0xc1 0 IRQ_TYPE_NONE>, + <4 0xc2 0 IRQ_TYPE_NONE>, + <4 0xc3 0 IRQ_TYPE_NONE>, + <4 0xc4 0 IRQ_TYPE_NONE>, + <4 0xc5 0 IRQ_TYPE_NONE>, + <4 0xc6 0 IRQ_TYPE_NONE>, + <4 0xc7 0 IRQ_TYPE_NONE>, + <4 0xc8 0 IRQ_TYPE_NONE>, + <4 0xc9 0 IRQ_TYPE_NONE>, + <4 0xca 0 IRQ_TYPE_NONE>, + <4 0xcb 0 IRQ_TYPE_NONE>; + + interrupt-names = "pm6150l_gpio1", "pm6150l_gpio2", + "pm6150l_gpio3", "pm6150l_gpio4", + "pm6150l_gpio5", "pm6150l_gpio6", + "pm6150l_gpio7", "pm6150l_gpio8", + "pm6150l_gpio9", "pm6150l_gpio10", + "pm6150l_gpio11", "pm6150l_gpio12"; + }; + }; + + pm6150l_lsid5: pmic@5 { + compatible = "qcom,pm6150l", "qcom,spmi-pmic"; + reg = <0x5 SPMI_USID>; + #address-cells = <1>; + #size-cells = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/sc7180-idp.dts b/arch/arm64/boot/dts/qcom/sc7180-idp.dts index 5ee6eb3e2b99..be42ae9d2d9d 100644 --- a/arch/arm64/boot/dts/qcom/sc7180-idp.dts +++ b/arch/arm64/boot/dts/qcom/sc7180-idp.dts @@ -8,6 +8,8 @@ /dts-v1/; #include "sc7180.dtsi" +#include "pm6150.dtsi" +#include "pm6150l.dtsi" / { model = "Qualcomm Technologies, Inc. SC7180 IDP";