2017-03-06 16:26:25

by Jon Mason

[permalink] [raw]
Subject: [PATCH v3 0/2] ARM: dts: BCM5301X: TWD WD and i2c Support

Changes in v3:
* Dropped the "Correct GIC_PPI interrupt flags" patch from the series,
as it was already accepted
* Disabled the i2c bus by default, to follow current convention (per
Florian)

Changes in v2:
* Rafal discovered an issue with the GIC_PPI flags being incorrect.
Since there was a dependency on that DT entry in this series, I added
a patch to correct the issue and reworked the TWD patch with the
changes.


These seemed to have been lost sometime last year. See
https://lkml.org/lkml/2016/5/11/953

I am dropping the syscon reboot from the series, as I believe that was
the sticking point, and resending the TWD and i2c patches.


Jon Mason (2):
ARM: dts: bcm5301x: Add TWD WD Support to DT
ARM: dts: bcm5301x: Add I2C support to the DT

arch/arm/boot/dts/bcm5301x.dtsi | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)

--
2.7.4


2017-03-06 16:26:24

by Jon Mason

[permalink] [raw]
Subject: [PATCH v3 1/2] ARM: dts: bcm5301x: Add TWD WD Support to DT

From: Jon Mason <[email protected]>

Add support for the ARM TWD Watchdog to the bcm5301x device tree. The
ARM TWD timer allocated the register space for the WDT, so this patch
necessitated shrinking that. Also, the GIC masks were added for these.

Signed-off-by: Jon Mason <[email protected]>
---
arch/arm/boot/dts/bcm5301x.dtsi | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 1e5a97b..a9aa7be 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -70,10 +70,19 @@
clocks = <&periph_clk>;
};

- local-timer@20600 {
+ timer@20600 {
compatible = "arm,cortex-a9-twd-timer";
- reg = <0x20600 0x100>;
- interrupts = <GIC_PPI 13 IRQ_TYPE_EDGE_RISING>;
+ reg = <0x20600 0x20>;
+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
+ IRQ_TYPE_EDGE_RISING)>;
+ clocks = <&periph_clk>;
+ };
+
+ watchdog@20620 {
+ compatible = "arm,cortex-a9-twd-wdt";
+ reg = <0x20620 0x20>;
+ interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
+ IRQ_TYPE_EDGE_RISING)>;
clocks = <&periph_clk>;
};

--
2.7.4

2017-03-06 16:26:22

by Jon Mason

[permalink] [raw]
Subject: [PATCH v3 2/2] ARM: dts: bcm5301x: Add I2C support to the DT

From: Jon Mason <[email protected]>

Add I2C support to the bcm5301x Device Tree. Since no driver changes
are needed to enable this hardware, only the device tree changes are
required to make this functional.

Signed-off-by: Jon Mason <[email protected]>
---
arch/arm/boot/dts/bcm5301x.dtsi | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index a9aa7be..89b3c7f5 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -324,6 +324,16 @@
};
};

+ i2c0: i2c@18009000 {
+ compatible = "brcm,iproc-i2c";
+ reg = <0x18009000 0x50>;
+ interrupts = <GIC_SPI 121 IRQ_TYPE_NONE>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <100000>;
+ status = "disabled";
+ };
+
lcpll0: lcpll0@1800c100 {
#clock-cells = <1>;
compatible = "brcm,nsp-lcpll0";
--
2.7.4

2017-03-15 21:53:58

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] ARM: dts: bcm5301x: Add TWD WD Support to DT

On 03/06/2017 08:24 AM, Jon Mason wrote:
> From: Jon Mason <[email protected]>
>
> Add support for the ARM TWD Watchdog to the bcm5301x device tree. The
> ARM TWD timer allocated the register space for the WDT, so this patch
> necessitated shrinking that. Also, the GIC masks were added for these.
>
> Signed-off-by: Jon Mason <[email protected]>

There were some minor conflicts that have been resolved, applied, thanks!
--
Florian

2017-03-18 10:38:55

by Rafał Miłecki

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] ARM: dts: bcm5301x: Add TWD WD Support to DT

On 03/15/2017 10:53 PM, Florian Fainelli wrote:
> On 03/06/2017 08:24 AM, Jon Mason wrote:
>> From: Jon Mason <[email protected]>
>>
>> Add support for the ARM TWD Watchdog to the bcm5301x device tree. The
>> ARM TWD timer allocated the register space for the WDT, so this patch
>> necessitated shrinking that. Also, the GIC masks were added for these.
>>
>> Signed-off-by: Jon Mason <[email protected]>
>
> There were some minor conflicts that have been resolved, applied, thanks!

Solving conflict by removing a reg property? ;)
timer@20600 {
compatible = "arm,cortex-a9-twd-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_EDGE_RISING)>;
clocks = <&periph_clk>;
};

This may be a bad idea :P
[ 0.020330] ------------[ cut here ]------------
[ 0.025280] WARNING: CPU: 0 PID: 0 at arch/arm/kernel/smp_twd.c:412 twd_local_timer_of_register+0x6c/0x80()
[ 0.035653] twd_local_timer_of_register failed (-12)
[ 0.040924] Modules linked in:
[ 0.044171] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.53 #0
[ 0.050462] Hardware name: BCM5301X
[ 0.054161] Backtrace:
[ 0.056781] [<c0017050>] (dump_backtrace) from [<c001724c>] (show_stack+0x18/0x1c)
[ 0.064831] r7:0000019c r6:c03ea15e r5:600000d3 r4:00000000
[ 0.070992] [<c0017234>] (show_stack) from [<c0181724>] (dump_stack+0x84/0xa4)
[ 0.078688] [<c01816a0>] (dump_stack) from [<c0021534>] (warn_slowpath_common+0x8c/0xb8)
[ 0.087294] r5:00000009 r4:c0497f48
[ 0.091188] [<c00214a8>] (warn_slowpath_common) from [<c0021598>] (warn_slowpath_fmt+0x38/0x40)
[ 0.100444] r8:c7ffe700 r7:c04b0a14 r6:c04983c0 r5:00000002 r4:c6de78f0
[ 0.107721] [<c0021564>] (warn_slowpath_fmt) from [<c0464010>] (twd_local_timer_of_register+0x6c/0x80)
[ 0.117629] r3:fffffff4 r2:c03ea135
[ 0.121512] [<c0463fa4>] (twd_local_timer_of_register) from [<c04760b0>] (clocksource_probe+0x54/0x94)
[ 0.131410] r5:00000002 r4:c6de78f0
[ 0.135299] [<c047605c>] (clocksource_probe) from [<c046366c>] (time_init+0x30/0x38)
[ 0.143532] r5:ffffffff r4:00000000
[ 0.147412] [<c046363c>] (time_init) from [<c0460be0>] (start_kernel+0x274/0x3f4)
[ 0.155376] [<c046096c>] (start_kernel) from [<0000807c>] (0x807c)
[ 0.161944] r10:00000000 r9:413fc090 r8:0000406a r7:c049acd4 r6:c0488a24 r5:c0498444
[ 0.170454] r4:c04b0b20
[ 0.173213] ---[ end trace f24b6c88ae00fa9a ]---

2017-03-18 16:43:09

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] ARM: dts: bcm5301x: Add TWD WD Support to DT



On 03/18/2017 03:36 AM, Rafał Miłecki wrote:
> On 03/15/2017 10:53 PM, Florian Fainelli wrote:
>> On 03/06/2017 08:24 AM, Jon Mason wrote:
>>> From: Jon Mason <[email protected]>
>>>
>>> Add support for the ARM TWD Watchdog to the bcm5301x device tree. The
>>> ARM TWD timer allocated the register space for the WDT, so this patch
>>> necessitated shrinking that. Also, the GIC masks were added for these.
>>>
>>> Signed-off-by: Jon Mason <[email protected]>
>>
>> There were some minor conflicts that have been resolved, applied, thanks!
>
> Solving conflict by removing a reg property? ;)
> timer@20600 {
> compatible = "arm,cortex-a9-twd-timer";
> interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
> IRQ_TYPE_EDGE_RISING)>;
> clocks = <&periph_clk>;
> };

Sorry about that, the new commit is pushed to the same branch:

https://github.com/Broadcom/stblinux/commit/f22c635e585471d01a38b829c0753c1467b5058e

and it now incorporates:

ARM: dts: BCM5301X: Correct GIC_PPI interrupt flags

which was applied to devicetree/fixes and not devicetree/next.

>
> This may be a bad idea :P
> [ 0.020330] ------------[ cut here ]------------
> [ 0.025280] WARNING: CPU: 0 PID: 0 at arch/arm/kernel/smp_twd.c:412
> twd_local_timer_of_register+0x6c/0x80()
> [ 0.035653] twd_local_timer_of_register failed (-12)
> [ 0.040924] Modules linked in:
> [ 0.044171] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.53 #0
> [ 0.050462] Hardware name: BCM5301X
> [ 0.054161] Backtrace:
> [ 0.056781] [<c0017050>] (dump_backtrace) from [<c001724c>]
> (show_stack+0x18/0x1c)
> [ 0.064831] r7:0000019c r6:c03ea15e r5:600000d3 r4:00000000
> [ 0.070992] [<c0017234>] (show_stack) from [<c0181724>]
> (dump_stack+0x84/0xa4)
> [ 0.078688] [<c01816a0>] (dump_stack) from [<c0021534>]
> (warn_slowpath_common+0x8c/0xb8)
> [ 0.087294] r5:00000009 r4:c0497f48
> [ 0.091188] [<c00214a8>] (warn_slowpath_common) from [<c0021598>]
> (warn_slowpath_fmt+0x38/0x40)
> [ 0.100444] r8:c7ffe700 r7:c04b0a14 r6:c04983c0 r5:00000002 r4:c6de78f0
> [ 0.107721] [<c0021564>] (warn_slowpath_fmt) from [<c0464010>]
> (twd_local_timer_of_register+0x6c/0x80)
> [ 0.117629] r3:fffffff4 r2:c03ea135
> [ 0.121512] [<c0463fa4>] (twd_local_timer_of_register) from
> [<c04760b0>] (clocksource_probe+0x54/0x94)
> [ 0.131410] r5:00000002 r4:c6de78f0
> [ 0.135299] [<c047605c>] (clocksource_probe) from [<c046366c>]
> (time_init+0x30/0x38)
> [ 0.143532] r5:ffffffff r4:00000000
> [ 0.147412] [<c046363c>] (time_init) from [<c0460be0>]
> (start_kernel+0x274/0x3f4)
> [ 0.155376] [<c046096c>] (start_kernel) from [<0000807c>] (0x807c)
> [ 0.161944] r10:00000000 r9:413fc090 r8:0000406a r7:c049acd4
> r6:c0488a24 r5:c0498444
> [ 0.170454] r4:c04b0b20
> [ 0.173213] ---[ end trace f24b6c88ae00fa9a ]---
>

--
Florian