2019-02-13 14:09:57

by Baolin Wang

[permalink] [raw]
Subject: [PATCH v2 0/5] Add new device nodes for Spreadtrum SC9860 platform

This patch set adds charger and fuel gauge device nodes for Spreadtrum
SC2731 PMIC, it also removes redundant irq trigger setting for PMIC
devices and adds nvmem cells for ADC to calibrate the ADC channel scales.

Moreover we also remove the wildcard compatible string.

Changes from v1:
- Remove wildcard compatible string.

Baolin Wang (5):
arm64: dts: sprd: Remove PMIC INTC irq trigger type
arm64: dts: sprd: Add ADC calibration support
arm64: dts: sprd: Add SC2731 charger device
arm64: dts: sprd: Add SC27XX fuel gauge device
arm64: dts: sprd: Remove wildcard compatible string

arch/arm64/boot/dts/sprd/sc2731.dtsi | 56 +++++++++++++++++++++++------
arch/arm64/boot/dts/sprd/sp9860g-1h10.dts | 16 +++++++++
2 files changed, 61 insertions(+), 11 deletions(-)

--
1.7.9.5



2019-02-13 14:10:06

by Baolin Wang

[permalink] [raw]
Subject: [PATCH v2 1/5] arm64: dts: sprd: Remove PMIC INTC irq trigger type

The Spreadtrum PMIC INTC controller has no registers to set trigger type,
since it is always high level trigger as default. So remove its child
devices' irq trigger type setting and change #interrupt-cells to 1.

Signed-off-by: Baolin Wang <[email protected]>
---
arch/arm64/boot/dts/sprd/sc2731.dtsi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/sprd/sc2731.dtsi b/arch/arm64/boot/dts/sprd/sc2731.dtsi
index 82bd642..f2f2aa5 100644
--- a/arch/arm64/boot/dts/sprd/sc2731.dtsi
+++ b/arch/arm64/boot/dts/sprd/sc2731.dtsi
@@ -13,7 +13,7 @@
spi-max-frequency = <26000000>;
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
- #interrupt-cells = <2>;
+ #interrupt-cells = <1>;
#address-cells = <1>;
#size-cells = <0>;

@@ -43,14 +43,14 @@
compatible = "sprd,sc27xx-rtc", "sprd,sc2731-rtc";
reg = <0x280>;
interrupt-parent = <&sc2731_pmic>;
- interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <2>;
};

pmic_eic: gpio@300 {
compatible = "sprd,sc27xx-eic";
reg = <0x300>;
interrupt-parent = <&sc2731_pmic>;
- interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <5>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
@@ -69,7 +69,7 @@
compatible = "sprd,sc27xx-adc", "sprd,sc2731-adc";
reg = <0x480>;
interrupt-parent = <&sc2731_pmic>;
- interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <0>;
#io-channel-cells = <1>;
hwlocks = <&hwlock 4>;
};
--
1.7.9.5


2019-02-13 14:10:10

by Baolin Wang

[permalink] [raw]
Subject: [PATCH v2 2/5] arm64: dts: sprd: Add ADC calibration support

This patch adds phandles to the calibration cells provided by the Efuse
device, which is used to calibrate the ADC channel scales.

Signed-off-by: Baolin Wang <[email protected]>
---
arch/arm64/boot/dts/sprd/sc2731.dtsi | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/arch/arm64/boot/dts/sprd/sc2731.dtsi b/arch/arm64/boot/dts/sprd/sc2731.dtsi
index f2f2aa5..a2edc25 100644
--- a/arch/arm64/boot/dts/sprd/sc2731.dtsi
+++ b/arch/arm64/boot/dts/sprd/sc2731.dtsi
@@ -63,6 +63,14 @@
#address-cells = <1>;
#size-cells = <1>;
hwlocks = <&hwlock 12>;
+
+ adc_big_scale: calib@24 {
+ reg = <0x24 0x2>;
+ };
+
+ adc_small_scale: calib@26 {
+ reg = <0x26 0x2>;
+ };
};

pmic_adc: adc@480 {
@@ -72,6 +80,8 @@
interrupts = <0>;
#io-channel-cells = <1>;
hwlocks = <&hwlock 4>;
+ nvmem-cell-names = "big_scale_calib", "small_scale_calib";
+ nvmem-cells = <&adc_big_scale>, <&adc_small_scale>;
};

vibrator@ec8 {
--
1.7.9.5


2019-02-13 14:10:43

by Baolin Wang

[permalink] [raw]
Subject: [PATCH v2 4/5] arm64: dts: sprd: Add SC27XX fuel gauge device

Add Spreadtrum SC27XX fuel gauge device node to calculate the
battery capacity.

Signed-off-by: Baolin Wang <[email protected]>
---
arch/arm64/boot/dts/sprd/sc2731.dtsi | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/arch/arm64/boot/dts/sprd/sc2731.dtsi b/arch/arm64/boot/dts/sprd/sc2731.dtsi
index dbf6242..4a79ddf 100644
--- a/arch/arm64/boot/dts/sprd/sc2731.dtsi
+++ b/arch/arm64/boot/dts/sprd/sc2731.dtsi
@@ -70,6 +70,11 @@
#size-cells = <1>;
hwlocks = <&hwlock 12>;

+ fgu_calib: calib@6 {
+ reg = <0x6 0x2>;
+ bits = <0 9>;
+ };
+
adc_big_scale: calib@24 {
reg = <0x24 0x2>;
};
@@ -90,6 +95,19 @@
nvmem-cells = <&adc_big_scale>, <&adc_small_scale>;
};

+ fgu@a00 {
+ compatible = "sprd,sc2731-fgu";
+ reg = <0xa00>;
+ bat-detect-gpio = <&pmic_eic 9 GPIO_ACTIVE_HIGH>;
+ io-channels = <&pmic_adc 3>, <&pmic_adc 6>;
+ io-channel-names = "bat-temp", "charge-vol";
+ monitored-battery = <&bat>;
+ nvmem-cell-names = "fgu_calib";
+ nvmem-cells = <&fgu_calib>;
+ interrupt-parent = <&sc2731_pmic>;
+ interrupts = <4>;
+ };
+
vibrator@ec8 {
compatible = "sprd,sc27xx-vibrator", "sprd,sc2731-vibrator";
reg = <0xec8>;
--
1.7.9.5


2019-02-13 14:10:59

by Baolin Wang

[permalink] [raw]
Subject: [PATCH v2 5/5] arm64: dts: sprd: Remove wildcard compatible string

Remove wildcard compatible string.

Signed-off-by: Baolin Wang <[email protected]>
---
arch/arm64/boot/dts/sprd/sc2731.dtsi | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/boot/dts/sprd/sc2731.dtsi b/arch/arm64/boot/dts/sprd/sc2731.dtsi
index 4a79ddf..e15409f 100644
--- a/arch/arm64/boot/dts/sprd/sc2731.dtsi
+++ b/arch/arm64/boot/dts/sprd/sc2731.dtsi
@@ -24,7 +24,7 @@
};

led-controller@200 {
- compatible = "sprd,sc27xx-bltc", "sprd,sc2731-bltc";
+ compatible = "sprd,sc2731-bltc";
reg = <0x200>;
#address-cells = <1>;
#size-cells = <0>;
@@ -46,14 +46,14 @@
};

rtc@280 {
- compatible = "sprd,sc27xx-rtc", "sprd,sc2731-rtc";
+ compatible = "sprd,sc2731-rtc";
reg = <0x280>;
interrupt-parent = <&sc2731_pmic>;
interrupts = <2>;
};

pmic_eic: gpio@300 {
- compatible = "sprd,sc27xx-eic";
+ compatible = "sprd,sc2731-eic";
reg = <0x300>;
interrupt-parent = <&sc2731_pmic>;
interrupts = <5>;
@@ -64,7 +64,7 @@
};

efuse@380 {
- compatible = "sprd,sc27xx-efuse", "sprd,sc2731-efuse";
+ compatible = "sprd,sc2731-efuse";
reg = <0x380>;
#address-cells = <1>;
#size-cells = <1>;
@@ -85,7 +85,7 @@
};

pmic_adc: adc@480 {
- compatible = "sprd,sc27xx-adc", "sprd,sc2731-adc";
+ compatible = "sprd,sc2731-adc";
reg = <0x480>;
interrupt-parent = <&sc2731_pmic>;
interrupts = <0>;
@@ -109,12 +109,12 @@
};

vibrator@ec8 {
- compatible = "sprd,sc27xx-vibrator", "sprd,sc2731-vibrator";
+ compatible = "sprd,sc2731-vibrator";
reg = <0xec8>;
};

regulators {
- compatible = "sprd,sc27xx-regulator";
+ compatible = "sprd,sc2731-regulator";

vddarm0: BUCK_CPU0 {
regulator-name = "vddarm0";
--
1.7.9.5


2019-02-13 14:11:46

by Baolin Wang

[permalink] [raw]
Subject: [PATCH v2 3/5] arm64: dts: sprd: Add SC2731 charger device

Add charger device node and related battery node for SC2731 PMIC.

Signed-off-by: Baolin Wang <[email protected]>
---
arch/arm64/boot/dts/sprd/sc2731.dtsi | 6 ++++++
arch/arm64/boot/dts/sprd/sp9860g-1h10.dts | 16 ++++++++++++++++
2 files changed, 22 insertions(+)

diff --git a/arch/arm64/boot/dts/sprd/sc2731.dtsi b/arch/arm64/boot/dts/sprd/sc2731.dtsi
index a2edc25..dbf6242 100644
--- a/arch/arm64/boot/dts/sprd/sc2731.dtsi
+++ b/arch/arm64/boot/dts/sprd/sc2731.dtsi
@@ -17,6 +17,12 @@
#address-cells = <1>;
#size-cells = <0>;

+ charger@0 {
+ compatible = "sprd,sc2731-charger";
+ reg = <0x0>;
+ monitored-battery = <&bat>;
+ };
+
led-controller@200 {
compatible = "sprd,sc27xx-bltc", "sprd,sc2731-bltc";
reg = <0x200>;
diff --git a/arch/arm64/boot/dts/sprd/sp9860g-1h10.dts b/arch/arm64/boot/dts/sprd/sp9860g-1h10.dts
index 3bd18e3..2a963bd 100644
--- a/arch/arm64/boot/dts/sprd/sp9860g-1h10.dts
+++ b/arch/arm64/boot/dts/sprd/sp9860g-1h10.dts
@@ -41,6 +41,22 @@
#size-cells = <2>;
ranges;
};
+
+ bat: battery {
+ compatible = "simple-battery";
+ charge-full-design-microamp-hours = <1900000>;
+ charge-term-current-microamp = <120000>;
+ constant_charge_voltage_max_microvolt = <4350000>;
+ internal-resistance-micro-ohms = <250000>;
+ ocv-capacity-celsius = <20>;
+ ocv-capacity-table-0 = <4185000 100>, <4113000 95>, <4066000 90>,
+ <4022000 85>, <3983000 80>, <3949000 75>,
+ <3917000 70>, <3889000 65>, <3864000 60>,
+ <3835000 55>, <3805000 50>, <3787000 45>,
+ <3777000 40>, <3773000 35>, <3770000 30>,
+ <3765000 25>, <3752000 20>, <3724000 15>,
+ <3680000 10>, <3605000 5>, <3400000 0>;
+ };
};

&uart0 {
--
1.7.9.5


2019-02-13 15:16:10

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH v2 5/5] arm64: dts: sprd: Remove wildcard compatible string

On Wed, Feb 13, 2019 at 1:34 PM Baolin Wang <[email protected]> wrote:
>
> Remove wildcard compatible string.
>
> Signed-off-by: Baolin Wang <[email protected]>


Looks good to me. It does break using the new dtb file on older kernels,
but I suppose this is not a case we care much about yet on your
platform, given that both the dts file sand the drivers in the
kernel are still work in progress.

I had started the other reply I just sent before I saw this new mail.

Arnd

2019-02-14 10:27:19

by Baolin Wang

[permalink] [raw]
Subject: Re: [PATCH v2 5/5] arm64: dts: sprd: Remove wildcard compatible string

On Wed, 13 Feb 2019 at 22:32, Arnd Bergmann <[email protected]> wrote:
>
> On Wed, Feb 13, 2019 at 1:34 PM Baolin Wang <[email protected]> wrote:
> >
> > Remove wildcard compatible string.
> >
> > Signed-off-by: Baolin Wang <[email protected]>
>
>
> Looks good to me. It does break using the new dtb file on older kernels,
> but I suppose this is not a case we care much about yet on your
> platform, given that both the dts file sand the drivers in the
> kernel are still work in progress.

Right. Thanks for your reviewing.

>
> I had started the other reply I just sent before I saw this new mail.
>
> Arnd



--
Baolin Wang
Best Regards

2019-02-18 10:36:15

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH v2 5/5] arm64: dts: sprd: Remove wildcard compatible string

On Thu, Feb 14, 2019 at 2:56 AM Baolin Wang <[email protected]> wrote:
>
> On Wed, 13 Feb 2019 at 22:32, Arnd Bergmann <[email protected]> wrote:
> >
> > On Wed, Feb 13, 2019 at 1:34 PM Baolin Wang <[email protected]> wrote:
> > >
> > > Remove wildcard compatible string.
> > >
> > > Signed-off-by: Baolin Wang <[email protected]>
> >
> >
> > Looks good to me. It does break using the new dtb file on older kernels,
> > but I suppose this is not a case we care much about yet on your
> > platform, given that both the dts file sand the drivers in the
> > kernel are still work in progress.
>
> Right. Thanks for your reviewing.

I have applied patches 1 through 5 now. Thanks,

Arnd