* [PATCH v3 00/11] ARM: sunxi: add Allwinner B288 and the PocketBook Verse
@ 2026-10-05 20:27 Pablo Mazzini
2026-10-05 20:27 ` [PATCH v3 05/11] dt-bindings: rtc: sun6i-a31: add Allwinner B288 Pablo Mazzini
2026-10-05 20:27 ` [PATCH v3 06/11] rtc: sun6i: add Allwinner B288 compatible Pablo Mazzini
0 siblings, 2 replies; 6+ messages in thread
From: Pablo Mazzini @ 2026-10-05 20:27 UTC (permalink / raw)
To: Chen-Yu Tsai, Jernej Skrabec, Samuel Holland
Cc: Pablo Mazzini, devicetree, linux-arm-kernel, linux-clk,
linux-gpio, linux-i2c, linux-kernel, linux-rtc, linux-sunxi,
linux-watchdog
The Allwinner B288 (sun8iw10p1) is a dual Cortex-A7 SoC used in e-book
readers. This series adds the CCU and pin controller drivers, the RTC,
I2C, NMI and watchdog compatibles, the SoC .dtsi, and one board: the
PocketBook Verse (PB629), a 6" reader.
The B288 is closest to the A64: most of its PLLs are bit-identical.
The clock and pin descriptions come from Allwinner's BSP, cross-checked
against ccu-sun50i-a64.c. Tested on a PB629, boots to userspace.
The pin controller relies on "pinctrl: sunxi: dt: number the IRQ banks
from the first one that has IRQs" for correct PIO interrupt mapping.
Changes since v2:
- Drop the MMC binding patch, applied by Ulf.
- Rebase onto sunxi/for-next.
- Constrain the RTC clock outputs and pinctrl interrupts in the
bindings (Sashiko).
- Add a B288 watchdog compatible (Andre).
- DTS: drop the memory node, the arch timer workaround and the
sunxi.c entry; add disable-wp and the eMMC 1.8V modes; DLDO1 no
longer always-on; mainline pin function names (Andre).
Changes since v1:
- Add this cover letter.
- Drop both new bindings; add the compatibles to the existing
allwinner,sun4i-a10-{ccu,pinctrl}.yaml instead.
- Rewrite the pinctrl driver in the DT-provided pinmux style.
Pablo Mazzini (11):
dt-bindings: clock: sun4i-a10-ccu: add Allwinner B288
clk: sunxi-ng: add Allwinner B288 CCU driver
dt-bindings: pinctrl: sun4i-a10: add Allwinner B288
pinctrl: sunxi: add Allwinner B288 pin controller driver
dt-bindings: rtc: sun6i-a31: add Allwinner B288
rtc: sun6i: add Allwinner B288 compatible
dt-bindings: i2c: mv64xxx: add Allwinner B288
dt-bindings: interrupt-controller: add Allwinner B288 NMI
dt-bindings: watchdog: sun4i-a10-wdt: add Allwinner B288
dt-bindings: arm: sunxi: add PocketBook Verse
ARM: dts: allwinner: add B288 and the PocketBook Verse
.../devicetree/bindings/arm/sunxi.yaml | 5 +
.../clock/allwinner,sun4i-a10-ccu.yaml | 1 +
.../bindings/i2c/marvell,mv64xxx-i2c.yaml | 1 +
.../allwinner,sun7i-a20-sc-nmi.yaml | 1 +
.../pinctrl/allwinner,sun4i-a10-pinctrl.yaml | 22 +
.../bindings/rtc/allwinner,sun6i-a31-rtc.yaml | 3 +
.../watchdog/allwinner,sun4i-a10-wdt.yaml | 1 +
arch/arm/boot/dts/allwinner/Makefile | 1 +
.../allwinner/sun8i-b288-pocketbook-verse.dts | 114 ++++
arch/arm/boot/dts/allwinner/sun8i-b288.dtsi | 290 ++++++++
drivers/clk/sunxi-ng/Kconfig | 5 +
drivers/clk/sunxi-ng/Makefile | 1 +
drivers/clk/sunxi-ng/ccu-sun8i-b288.c | 644 ++++++++++++++++++
drivers/clk/sunxi-ng/ccu-sun8i-b288.h | 10 +
drivers/pinctrl/sunxi/Kconfig | 10 +
drivers/pinctrl/sunxi/Makefile | 1 +
drivers/pinctrl/sunxi/pinctrl-sun8i-b288.c | 49 ++
drivers/rtc/rtc-sun6i.c | 1 +
include/dt-bindings/clock/sun8i-b288-ccu.h | 82 +++
include/dt-bindings/reset/sun8i-b288-ccu.h | 45 ++
20 files changed, 1287 insertions(+)
create mode 100644 arch/arm/boot/dts/allwinner/sun8i-b288-pocketbook-verse.dts
create mode 100644 arch/arm/boot/dts/allwinner/sun8i-b288.dtsi
create mode 100644 drivers/clk/sunxi-ng/ccu-sun8i-b288.c
create mode 100644 drivers/clk/sunxi-ng/ccu-sun8i-b288.h
create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-b288.c
create mode 100644 include/dt-bindings/clock/sun8i-b288-ccu.h
create mode 100644 include/dt-bindings/reset/sun8i-b288-ccu.h
--
2.52.0
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v3 05/11] dt-bindings: rtc: sun6i-a31: add Allwinner B288
2026-10-05 20:27 [PATCH v3 00/11] ARM: sunxi: add Allwinner B288 and the PocketBook Verse Pablo Mazzini
@ 2026-10-05 20:27 ` Pablo Mazzini
2026-10-05 20:31 ` sashiko-bot
2026-10-07 21:16 ` Rob Herring (Arm)
2026-10-05 20:27 ` [PATCH v3 06/11] rtc: sun6i: add Allwinner B288 compatible Pablo Mazzini
1 sibling, 2 replies; 6+ messages in thread
From: Pablo Mazzini @ 2026-10-05 20:27 UTC (permalink / raw)
To: Alexandre Belloni, Chen-Yu Tsai, Conor Dooley, Jernej Skrabec,
Krzysztof Kozlowski, Maxime Ripard, Rob Herring, Samuel Holland
Cc: Pablo Mazzini, devicetree, linux-arm-kernel, linux-kernel,
linux-rtc, linux-sunxi
The B288 RTC wires one alarm interrupt, not two.
Signed-off-by: Pablo Mazzini <pmazzini@gmail.com>
---
.../devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml b/Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml
index f2b91186ed37..ebe35f893f8c 100644
--- a/Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml
+++ b/Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml
@@ -19,6 +19,7 @@ properties:
- enum:
- allwinner,sun6i-a31-rtc
- allwinner,sun8i-a23-rtc
+ - allwinner,sun8i-b288-rtc
- allwinner,sun8i-h3-rtc
- allwinner,sun8i-r40-rtc
- allwinner,sun8i-v3-rtc
@@ -82,6 +83,7 @@ allOf:
contains:
enum:
- allwinner,sun8i-a23-rtc
+ - allwinner,sun8i-b288-rtc
- allwinner,sun8i-r40-rtc
- allwinner,sun8i-v3-rtc
@@ -162,6 +164,7 @@ allOf:
compatible:
contains:
enum:
+ - allwinner,sun8i-b288-rtc
- allwinner,sun8i-r40-rtc
- allwinner,sun50i-h616-rtc
- allwinner,sun50i-r329-rtc
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v3 05/11] dt-bindings: rtc: sun6i-a31: add Allwinner B288
2026-10-05 20:27 ` [PATCH v3 05/11] dt-bindings: rtc: sun6i-a31: add Allwinner B288 Pablo Mazzini
@ 2026-10-05 20:31 ` sashiko-bot
2026-10-07 21:16 ` Rob Herring (Arm)
1 sibling, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-10-05 20:31 UTC (permalink / raw)
To: Pablo Mazzini
Cc: robh, conor+dt, devicetree, linux-sunxi, linux-rtc,
Alexandre Belloni
> The B288 RTC wires one alarm interrupt, not two.
>
> Signed-off-by: Pablo Mazzini <pmazzini@gmail.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261005202731.153971-1-pmazzini@gmail.com?part=5
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 05/11] dt-bindings: rtc: sun6i-a31: add Allwinner B288
2026-10-05 20:27 ` [PATCH v3 05/11] dt-bindings: rtc: sun6i-a31: add Allwinner B288 Pablo Mazzini
2026-10-05 20:31 ` sashiko-bot
@ 2026-10-07 21:16 ` Rob Herring (Arm)
1 sibling, 0 replies; 6+ messages in thread
From: Rob Herring (Arm) @ 2026-10-07 21:16 UTC (permalink / raw)
To: Pablo Mazzini
Cc: Conor Dooley, Chen-Yu Tsai, Krzysztof Kozlowski, Maxime Ripard,
linux-sunxi, linux-rtc, linux-kernel, Jernej Skrabec,
Samuel Holland, linux-arm-kernel, Alexandre Belloni, devicetree
On Mon, 05 Oct 2026 21:27:25 +0100, Pablo Mazzini wrote:
> The B288 RTC wires one alarm interrupt, not two.
>
> Signed-off-by: Pablo Mazzini <pmazzini@gmail.com>
> ---
> .../devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml | 3 +++
> 1 file changed, 3 insertions(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v3 06/11] rtc: sun6i: add Allwinner B288 compatible
2026-10-05 20:27 [PATCH v3 00/11] ARM: sunxi: add Allwinner B288 and the PocketBook Verse Pablo Mazzini
2026-10-05 20:27 ` [PATCH v3 05/11] dt-bindings: rtc: sun6i-a31: add Allwinner B288 Pablo Mazzini
@ 2026-10-05 20:27 ` Pablo Mazzini
2026-10-05 20:40 ` sashiko-bot
1 sibling, 1 reply; 6+ messages in thread
From: Pablo Mazzini @ 2026-10-05 20:27 UTC (permalink / raw)
To: Alexandre Belloni, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland
Cc: Pablo Mazzini, linux-arm-kernel, linux-kernel, linux-rtc,
linux-sunxi
The driver only uses one alarm interrupt, so no functional change.
Signed-off-by: Pablo Mazzini <pmazzini@gmail.com>
---
drivers/rtc/rtc-sun6i.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
index 7fc60880e409..cd6ac5bb20cd 100644
--- a/drivers/rtc/rtc-sun6i.c
+++ b/drivers/rtc/rtc-sun6i.c
@@ -859,6 +859,7 @@ static int sun6i_rtc_probe(struct platform_device *pdev)
static const struct of_device_id sun6i_rtc_dt_ids[] = {
{ .compatible = "allwinner,sun6i-a31-rtc" },
{ .compatible = "allwinner,sun8i-a23-rtc" },
+ { .compatible = "allwinner,sun8i-b288-rtc" },
{ .compatible = "allwinner,sun8i-h3-rtc" },
{ .compatible = "allwinner,sun8i-r40-rtc" },
{ .compatible = "allwinner,sun8i-v3-rtc" },
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v3 06/11] rtc: sun6i: add Allwinner B288 compatible
2026-10-05 20:27 ` [PATCH v3 06/11] rtc: sun6i: add Allwinner B288 compatible Pablo Mazzini
@ 2026-10-05 20:40 ` sashiko-bot
0 siblings, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-10-05 20:40 UTC (permalink / raw)
To: Pablo Mazzini; +Cc: linux-sunxi, linux-rtc, Alexandre Belloni
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] rtc: sun6i: missing clock provider initialization for b288
--
commit e9a7236a84b632280651176f5049d0cbdc7cb29a
Author: Pablo Mazzini <pmazzini@gmail.com>
rtc: sun6i: add Allwinner B288 compatible
This commit adds the "allwinner,sun8i-b288-rtc" compatible string to the
sun6i RTC driver's device tree match table. This enables the driver to
probe on the Allwinner B288 platform.
> diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
> index 7fc60880e4094..cd6ac5bb20cdc 100644
> --- a/drivers/rtc/rtc-sun6i.c
> +++ b/drivers/rtc/rtc-sun6i.c
> @@ -859,6 +859,7 @@ static int sun6i_rtc_probe(struct platform_device *pdev)
> static const struct of_device_id sun6i_rtc_dt_ids[] = {
> { .compatible = "allwinner,sun6i-a31-rtc" },
> { .compatible = "allwinner,sun8i-a23-rtc" },
> + { .compatible = "allwinner,sun8i-b288-rtc" },
[Severity: Medium]
Does this compatible string also need a corresponding CLK_OF_DECLARE_DRIVER()
declaration to initialize the early clocks?
Without the declaration, the RTC driver fails to register as a clock
provider, rendering its clocks unavailable to the Common Clock Framework
even though the device tree binding specifies #clock-cells = <1> and
clock-output-names.
While the current in-tree sun8i-b288.dtsi added later in the series
relies on a root fixed-clock for osc32k and does not consume the RTC
clocks directly, any future board or peripheral attempting to legitimately
consume them will fail to resolve the clocks and hang with -EPROBE_DEFER.
> { .compatible = "allwinner,sun8i-h3-rtc" },
> { .compatible = "allwinner,sun8i-r40-rtc" },
> { .compatible = "allwinner,sun8i-v3-rtc" },
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261005202731.153971-1-pmazzini@gmail.com?part=6
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-10-07 21:16 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-05 20:27 [PATCH v3 00/11] ARM: sunxi: add Allwinner B288 and the PocketBook Verse Pablo Mazzini
2026-10-05 20:27 ` [PATCH v3 05/11] dt-bindings: rtc: sun6i-a31: add Allwinner B288 Pablo Mazzini
2026-10-05 20:31 ` sashiko-bot
2026-10-07 21:16 ` Rob Herring (Arm)
2026-10-05 20:27 ` [PATCH v3 06/11] rtc: sun6i: add Allwinner B288 compatible Pablo Mazzini
2026-10-05 20:40 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox