Re: [PATCH v8 0/4] arm64: dts: nuvoton: add NPCM845 SoC and EVB support

From: Andrew Jeffery

Date: Wed Jul 22 2026 - 07:27:22 EST


Hi Tomer,

Apologies for taking a while to get to this series.

On Wed, 2026-07-08 at 19:59 +0300, Tomer Maimon wrote:
> This series fixes the remaining timer binding issue and adds device tree
> support for peripherals on the Nuvoton NPCM845 SoC and its Evaluation
> Board (EVB).
>
> The first patch drops the undocumented timer0 clock-names property.
> The second patch reorders timer0 and PECI so the APB child nodes stay in
> ascending unit-address order.
> The third patch introduces peripheral nodes for Ethernet, MMC, SPI, USB,
> RNG, ADC, PWM-FAN, I2C, and OP-TEE firmware in the NPCM845 SoC device
> tree.
> The fourth patch enables these peripherals for the NPCM845-EVB, adding
> MDIO nodes, reserved memory, aliases, and board-specific configurations
> such as PHY modes and SPI flash partitions.
>
> The NPCM8XX device tree was tested on NPCM845 evaluation board.
>
> Addressed comments from:
>         - sashiko-bot
>
> Changes since version 7:
>         - modify timer place.
>         - add PSPI to commit message.
>
> Changes since version 6:
>         - remove IPMI i2C device.
>         - Add FIX enable property.
>         - Keep patches 1-3 unchanged.
>
> Changes since version 5:
>         - Add no-map to the tip_reserved firmware memory region.
>         - Drop the unsupported snps,eee-force-disable property from gmac1.
>         - Rework the FIU0 boot flash layout into nested fixed-partitions
>           under the bmc container.
>         - Keep patches 1-3 unchanged.
>
> Changes since version 4:
>         - Split the timer0 clock-names cleanup into a separate first patch.
>         - Remove nuvoton,sysgcr from udc8 and udc9.
>         - Rename apb: bus@f0000000 back to apb.
>         - Rename spix-mode to nuvoton,spix-mode.
>         - Keep cooling-levels as 32-bit cells while encoding fan-tach-ch
>           as /bits/ 8.
>
> Changes since version 3:
>         - reomve tmp100.
>
> Changes since version 2:
>         - Fix dts warning
>         - Arrange node order by ascending unit address.
>
> Changes since version 1:
>         - Fix commit message
>         - Fix dtbs_check warnings.
>
> Tomer Maimon (4):
>   arm64: dts: nuvoton: npcm845: Drop redundant timer clock-names
>   arm64: dts: nuvoton: npcm845: Reorder timer0 and PECI nodes

I've applied these first two, thanks for the fixes.

Regarding the last two:

>   arm64: dts: nuvoton: npcm845: Add peripheral nodes
>   arm64: dts: nuvoton: npcm845-evb: Add peripheral nodes

We now have scripts/dtc/dt-check-style. If you run it in strict mode
before and after applying the series, it indicates quite a few concerns
(pasted at the bottom). Do you mind looking over them and fixing what
makes sense? I'd like to conform to the strict style as best we can and
have justification for what remains for all patch submissions going
forward.

Cheers,

Andrew

[I] 0 andrew@heihei ~/s/k/l/o/build.arm64.default> diff -u before after
--- before 2026-07-22 17:57:35.932258745 +0930
+++ after 2026-07-22 17:58:14.205122192 +0930
@@ -1,4 +1,79 @@
../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:9: [property-order] property 'compatible' out of canonical order (should sort before 'model')
-../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:21: [property-order] property 'reg' out of canonical order (should sort before 'device_type')
-../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:24: [unused-labels] label 'refclk' defined but never &-referenced
-../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:27: [property-order] property '#clock-cells' out of canonical order (should sort before 'clock-frequency')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:13: [property-order] property 'ethernet1' out of canonical order (should sort before 'serial0')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:18: [property-order] property 'fiu0' out of canonical order (should sort before 'mdio-gpio1')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:57: [property-order] property 'reg' out of canonical order (should sort before 'device_type')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:60: [unused-labels] label 'refclk' defined but never &-referenced
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:63: [property-order] property '#clock-cells' out of canonical order (should sort before 'clock-frequency')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:69: [property-order] property 'ranges' out of canonical order (should sort before '#size-cells')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:71: [unused-labels] label 'tip_reserved' defined but never &-referenced
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:77: [child-name-order] child node 'mdio-0' out of name order
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:81: [property-order] property 'gpios' out of canonical order (should sort before '#size-cells')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:93: [property-order] property 'gpios' out of canonical order (should sort before '#size-cells')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:104: [required-blank-lines] "status" must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:110: [property-order] property 'pinctrl-0' out of canonical order (should sort before 'pinctrl-names')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:111: [continuation-alignment] continuation should align to column 21 (under "<" or \")
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:112: [property-order] property 'phy-handle' out of canonical order (should sort before 'pinctrl-0')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:113: [required-blank-lines] "status" must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:119: [property-order] property 'pinctrl-0' out of canonical order (should sort before 'pinctrl-names')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:120: [continuation-alignment] continuation should align to column 21 (under "<" or \")
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:121: [property-order] property 'phy-handle' out of canonical order (should sort before 'pinctrl-0')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:122: [required-blank-lines] "status" must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:131: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:134: [property-order] property 'reg' out of canonical order (should sort before 'spi-rx-bus-width')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:136: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:140: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:143: [property-order] property 'reg' out of canonical order (should sort before 'label')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:149: [hex-case] hex literal '0x007C0000' must be lowercase
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:149: [property-order] property 'reg' out of canonical order (should sort before 'label')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:151: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:153: [hex-case] hex literal '0x007C0000' must be lowercase
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:153: [property-order] property 'reg' out of canonical order (should sort before 'label')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:155: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:157: [property-order] property 'reg' out of canonical order (should sort before 'label')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:159: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:161: [hex-case] hex literal '0x02C00000' must be lowercase
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:161: [property-order] property 'reg' out of canonical order (should sort before 'label')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:163: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:165: [hex-case] hex literal '0x03C00000' must be lowercase
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:165: [property-order] property 'reg' out of canonical order (should sort before 'label')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:174: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:178: [property-order] property 'reg' out of canonical order (should sort before 'spi-tx-bus-width')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:180: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:184: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:186: [property-order] property 'reg' out of canonical order (should sort before 'label')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:194: [required-blank-lines] "status" must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:195: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:198: [property-order] property 'reg' out of canonical order (should sort before 'spi-rx-bus-width')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:200: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:204: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:206: [property-order] property 'reg' out of canonical order (should sort before 'label')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:214: [property-order] property 'nuvoton,spix-mode' out of canonical order (should sort before 'status')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:267: [required-blank-lines] "status" must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:276: [property-order] property 'pinctrl-names' out of canonical order (should sort before 'status')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:277: [property-order] property 'pinctrl-0' out of canonical order (should sort before 'pinctrl-names')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:278: [continuation-alignment] continuation should align to column 21 (under "<" or \")
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:279: [continuation-alignment] continuation should align to column 21 (under "<" or \")
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:280: [continuation-alignment] continuation should align to column 21 (under "<" or \")
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:281: [continuation-alignment] continuation should align to column 21 (under "<" or \")
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:282: [continuation-alignment] continuation should align to column 21 (under "<" or \")
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:283: [continuation-alignment] continuation should align to column 21 (under "<" or \")
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:284: [continuation-alignment] continuation should align to column 21 (under "<" or \")
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:285: [property-order] property '#address-cells' out of canonical order (should sort before 'pinctrl-0')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:287: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:290: [property-order] property 'cooling-levels' out of canonical order (should sort before 'fan-tach-ch')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:292: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:295: [property-order] property 'cooling-levels' out of canonical order (should sort before 'fan-tach-ch')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:297: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:300: [property-order] property 'cooling-levels' out of canonical order (should sort before 'fan-tach-ch')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:302: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:305: [property-order] property 'cooling-levels' out of canonical order (should sort before 'fan-tach-ch')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:307: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:310: [property-order] property 'cooling-levels' out of canonical order (should sort before 'fan-tach-ch')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:312: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:315: [property-order] property 'cooling-levels' out of canonical order (should sort before 'fan-tach-ch')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:317: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:320: [property-order] property 'cooling-levels' out of canonical order (should sort before 'fan-tach-ch')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:322: [required-blank-lines] child node must be preceded by a blank line
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:325: [property-order] property 'cooling-levels' out of canonical order (should sort before 'fan-tach-ch')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:335: [property-order] property '#address-cells' out of canonical order (should sort before 'status')
+../arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts:337: [required-blank-lines] child node must be preceded by a blank line