linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] Ten64 (NXP LS1088A) device tree updates
@ 2023-05-01  6:47 Mathew McBride
  2023-05-01  6:47 ` [PATCH 1/4] dt-bindings: trivial-devices: add traverse,ten64-controller Mathew McBride
                   ` (6 more replies)
  0 siblings, 7 replies; 19+ messages in thread
From: Mathew McBride @ 2023-05-01  6:47 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Li Yang, devicetree,
	linux-arm-kernel
  Cc: Mathew McBride

This series adds some properties which have been missing from the
mainline DTS:

- Binding for the microcontroller on the mainboard
  This is only consumed by U-Boot.

- Reduction in SD card maximum frequency
  Resolves timeout issues seen with some SD cards.
  This change has been in the Ten64 "production" firmware
  for some time

Mathew McBride (4):
  dt-bindings: trivial-devices: add traverse,ten64-controller
  arm64: dts: freescale: ten64: add board microcontroller binding
  arm64: dts: freescale: ten64: reduce maximum SD card frequency
  arm64: dts: freescale: ten64: fix header typo and update copyright

 .../devicetree/bindings/trivial-devices.yaml          |  2 ++
 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts   | 11 +++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

-- 
2.30.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 1/4] dt-bindings: trivial-devices: add traverse,ten64-controller
  2023-05-01  6:47 [PATCH 0/4] Ten64 (NXP LS1088A) device tree updates Mathew McBride
@ 2023-05-01  6:47 ` Mathew McBride
  2023-05-02  8:02   ` Krzysztof Kozlowski
  2023-05-01  6:47 ` [PATCH 2/4] arm64: dts: freescale: ten64: add board microcontroller binding Mathew McBride
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 19+ messages in thread
From: Mathew McBride @ 2023-05-01  6:47 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Li Yang, devicetree,
	linux-arm-kernel
  Cc: Mathew McBride

Add the Ten64 family board controller[1] to the trivial devices list.

Signed-off-by: Mathew McBride <matt@traverse.com.au>

[1] - https://ten64doc.traverse.com.au/hardware/microcontroller/
---
 Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index 246863a9bc7e..638e16fc9f71 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -397,6 +397,8 @@ properties:
           - ti,tps544b25
           - ti,tps544c20
           - ti,tps544c25
+            # Board controller for Ten64 family mainboards
+          - traverse,ten64-controller
             # Winbond/Nuvoton H/W Monitor
           - winbond,w83793
             # Vicor Corporation Digital Supervisor
-- 
2.30.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 2/4] arm64: dts: freescale: ten64: add board microcontroller binding
  2023-05-01  6:47 [PATCH 0/4] Ten64 (NXP LS1088A) device tree updates Mathew McBride
  2023-05-01  6:47 ` [PATCH 1/4] dt-bindings: trivial-devices: add traverse,ten64-controller Mathew McBride
@ 2023-05-01  6:47 ` Mathew McBride
  2023-05-01  6:47 ` [PATCH 3/4] arm64: dts: freescale: ten64: reduce maximum SD card frequency Mathew McBride
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 19+ messages in thread
From: Mathew McBride @ 2023-05-01  6:47 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Li Yang, devicetree,
	linux-arm-kernel
  Cc: Mathew McBride

This binding is only consumed by U-Boot. There is no Linux kernel
driver, however a userspace utility does exist.

The board microcontroller[1] on the Ten64 is responsible for
certain management functions such as storing the board
MAC address, 10G retimer and boot source selection.

Signed-off-by: Mathew McBride <matt@traverse.com.au>

[1] - https://ten64doc.traverse.com.au/hardware/microcontroller/
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
index d4867d6cf47c..c4259d3a5712 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -231,6 +231,11 @@ at97sc: tpm@29 {
 		compatible = "atmel,at97sc3204t";
 		reg = <0x29>;
 	};
+
+	uc: board-controller@7e {
+		compatible = "traverse,ten64-controller";
+		reg = <0x7e>;
+	};
 };
 
 &i2c2 {
-- 
2.30.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 3/4] arm64: dts: freescale: ten64: reduce maximum SD card frequency
  2023-05-01  6:47 [PATCH 0/4] Ten64 (NXP LS1088A) device tree updates Mathew McBride
  2023-05-01  6:47 ` [PATCH 1/4] dt-bindings: trivial-devices: add traverse,ten64-controller Mathew McBride
  2023-05-01  6:47 ` [PATCH 2/4] arm64: dts: freescale: ten64: add board microcontroller binding Mathew McBride
@ 2023-05-01  6:47 ` Mathew McBride
  2023-05-01  6:47 ` [PATCH 4/4] arm64: dts: freescale: ten64: fix header typo and update copyright Mathew McBride
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 19+ messages in thread
From: Mathew McBride @ 2023-05-01  6:47 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Li Yang, devicetree,
	linux-arm-kernel
  Cc: Mathew McBride

There have been user reports of timeouts when using certain
SD cards. To improve stability, reduce the maximum SD card
frequency to 25MHz.

If this issue is resolved in the future (by PCB change
or software tuning), we will apply fixups in the bootloader
to set the correct parameters.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
index c4259d3a5712..31404143010d 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -209,6 +209,7 @@ mdio1_phy4: ethernet-phy@1f {
 
 &esdhc {
 	status = "okay";
+	max-frequency = <25000000>;
 };
 
 &i2c0 {
-- 
2.30.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 4/4] arm64: dts: freescale: ten64: fix header typo and update copyright
  2023-05-01  6:47 [PATCH 0/4] Ten64 (NXP LS1088A) device tree updates Mathew McBride
                   ` (2 preceding siblings ...)
  2023-05-01  6:47 ` [PATCH 3/4] arm64: dts: freescale: ten64: reduce maximum SD card frequency Mathew McBride
@ 2023-05-01  6:47 ` Mathew McBride
  2025-08-13  2:34 ` [PATCH v2 0/2] dt-bindings: mfd: add Ten64 board controller Mathew McBride
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 19+ messages in thread
From: Mathew McBride @ 2023-05-01  6:47 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Li Yang, devicetree,
	linux-arm-kernel
  Cc: Mathew McBride

Somehow, I managed to typo our company name in the U-Boot
and Linux kernel submissions.

Fix this and update the copyright year at the same time.

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
index 31404143010d..11d30a6c9ae7 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -1,9 +1,10 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
- * Device Tree file for Travese Ten64 (LS1088) board
+ * Device Tree file for Traverse Technologies Ten64
+ * (LS1088A) board
  * Based on fsl-ls1088a-rdb.dts
  * Copyright 2017-2020 NXP
- * Copyright 2019-2021 Traverse Technologies
+ * Copyright 2019-2023 Traverse Technologies
  *
  * Author: Mathew McBride <matt@traverse.com.au>
  */
-- 
2.30.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH 1/4] dt-bindings: trivial-devices: add traverse,ten64-controller
  2023-05-01  6:47 ` [PATCH 1/4] dt-bindings: trivial-devices: add traverse,ten64-controller Mathew McBride
@ 2023-05-02  8:02   ` Krzysztof Kozlowski
  2023-05-05 20:47     ` Rob Herring
  2023-05-05 20:48     ` Rob Herring
  0 siblings, 2 replies; 19+ messages in thread
From: Krzysztof Kozlowski @ 2023-05-02  8:02 UTC (permalink / raw)
  To: Mathew McBride, Rob Herring, Krzysztof Kozlowski, Rob Herring,
	Shawn Guo, Li Yang, devicetree, linux-arm-kernel

On 01/05/2023 08:47, Mathew McBride wrote:
> Add the Ten64 family board controller[1] to the trivial devices list.
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> 
> [1] - https://ten64doc.traverse.com.au/hardware/microcontroller/
> ---
>  Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
> index 246863a9bc7e..638e16fc9f71 100644
> --- a/Documentation/devicetree/bindings/trivial-devices.yaml
> +++ b/Documentation/devicetree/bindings/trivial-devices.yaml
> @@ -397,6 +397,8 @@ properties:
>            - ti,tps544b25
>            - ti,tps544c20
>            - ti,tps544c25
> +            # Board controller for Ten64 family mainboards
> +          - traverse,ten64-controller

This is not a ten64 device, but just component of the SoC, right?
Regular NXP LPC804 Cortex-M0 which you just program with different firmware.

Basically this means you describe the firmware in Devicetree...

Rob,

What are the guidelines for generic co-processors (some Cortex-M)
exposing just I2C line and nothing more? Do we want to describe the
actual firmware running there?

Best regards,
Krzysztof


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 1/4] dt-bindings: trivial-devices: add traverse,ten64-controller
  2023-05-02  8:02   ` Krzysztof Kozlowski
@ 2023-05-05 20:47     ` Rob Herring
  2023-05-05 20:48     ` Rob Herring
  1 sibling, 0 replies; 19+ messages in thread
From: Rob Herring @ 2023-05-05 20:47 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Mathew McBride, Krzysztof Kozlowski, Shawn Guo, Li Yang,
	devicetree, linux-arm-kernel

On Tue, May 02, 2023 at 10:02:27AM +0200, Krzysztof Kozlowski wrote:
> On 01/05/2023 08:47, Mathew McBride wrote:
> > Add the Ten64 family board controller[1] to the trivial devices list.
> > 
> > Signed-off-by: Mathew McBride <matt@traverse.com.au>
> > 
> > [1] - https://ten64doc.traverse.com.au/hardware/microcontroller/

Nothing at that link...

> > ---
> >  Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
> > index 246863a9bc7e..638e16fc9f71 100644
> > --- a/Documentation/devicetree/bindings/trivial-devices.yaml
> > +++ b/Documentation/devicetree/bindings/trivial-devices.yaml
> > @@ -397,6 +397,8 @@ properties:
> >            - ti,tps544b25
> >            - ti,tps544c20
> >            - ti,tps544c25
> > +            # Board controller for Ten64 family mainboards
> > +          - traverse,ten64-controller
> 
> This is not a ten64 device, but just component of the SoC, right?
> Regular NXP LPC804 Cortex-M0 which you just program with different firmware.
> 
> Basically this means you describe the firmware in Devicetree...
> 
> Rob,
> 
> What are the guidelines for generic co-processors (some Cortex-M)
> exposing just I2C line and nothing more? Do we want to describe the
> actual firmware running there?

It really depends if the firmware implements a fixed function or varies 
frequently. If there's resources exposed in DT dependent on the 
firmware, then the binding kind of has to be a binding for the firmware.

DT is the view of hardware as presented to the OS whether the h/w is 
implemented in gates or firmware.

Rob

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 1/4] dt-bindings: trivial-devices: add traverse,ten64-controller
  2023-05-02  8:02   ` Krzysztof Kozlowski
  2023-05-05 20:47     ` Rob Herring
@ 2023-05-05 20:48     ` Rob Herring
  1 sibling, 0 replies; 19+ messages in thread
From: Rob Herring @ 2023-05-05 20:48 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Mathew McBride, Krzysztof Kozlowski, Shawn Guo, Li Yang,
	devicetree, linux-arm-kernel

On Tue, May 02, 2023 at 10:02:27AM +0200, Krzysztof Kozlowski wrote:
> On 01/05/2023 08:47, Mathew McBride wrote:
> > Add the Ten64 family board controller[1] to the trivial devices list.
> > 
> > Signed-off-by: Mathew McBride <matt@traverse.com.au>
> > 
> > [1] - https://ten64doc.traverse.com.au/hardware/microcontroller/
> > ---
> >  Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
> > index 246863a9bc7e..638e16fc9f71 100644
> > --- a/Documentation/devicetree/bindings/trivial-devices.yaml
> > +++ b/Documentation/devicetree/bindings/trivial-devices.yaml
> > @@ -397,6 +397,8 @@ properties:
> >            - ti,tps544b25
> >            - ti,tps544c20
> >            - ti,tps544c25
> > +            # Board controller for Ten64 family mainboards
> > +          - traverse,ten64-controller
> 
> This is not a ten64 device, but just component of the SoC, right?
> Regular NXP LPC804 Cortex-M0 which you just program with different firmware.
> 
> Basically this means you describe the firmware in Devicetree...
> 
> Rob,
> 
> What are the guidelines for generic co-processors (some Cortex-M)
> exposing just I2C line and nothing more? Do we want to describe the
> actual firmware running there?

Also, can't be trivial-device if this exposes an I2C bus.

Rob

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v2 0/2] dt-bindings: mfd: add Ten64 board controller
  2023-05-01  6:47 [PATCH 0/4] Ten64 (NXP LS1088A) device tree updates Mathew McBride
                   ` (3 preceding siblings ...)
  2023-05-01  6:47 ` [PATCH 4/4] arm64: dts: freescale: ten64: fix header typo and update copyright Mathew McBride
@ 2025-08-13  2:34 ` Mathew McBride
  2025-08-13  2:34 ` [PATCH v2 1/2] dt-bindings: mfd: add Traverse " Mathew McBride
  2025-08-13  2:34 ` [PATCH v2 " Mathew McBride
  6 siblings, 0 replies; 19+ messages in thread
From: Mathew McBride @ 2025-08-13  2:34 UTC (permalink / raw)
  To: devicetree, linux-arm-kernel
  Cc: Shawn Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Lee Jones, Mathew McBride

This is a rework of a binding I submitted a while ago (2023)[1].

Because the nature of the device-tree binding was very
simple (basically a device on the I2C bus with only an address/reg),
I had submitted it as a "trivial" device. 
I now understand that is not the right approach.

I have followed a similar approach to two comparable devices,
"gw,gsc" and "kontron,sl28cpld". Unlike these two devices,
there are currently no child "MFD" features available,
but it is possible there could be bindings for nvmem or other
functions in the future.

[1] https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230501064727.8921-2-matt@traverse.com.au/

Mathew McBride (2):
  dt-bindings: mfd: add Traverse Ten64 board controller
  arm: dts: freescale: ten64: add board controller binding

 .../mfd/traverse,ten64-controller.yaml        | 44 +++++++++++++++++++
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  |  4 ++
 2 files changed, 48 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml

-- 
2.43.0



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v2 1/2] dt-bindings: mfd: add Traverse Ten64 board controller
  2023-05-01  6:47 [PATCH 0/4] Ten64 (NXP LS1088A) device tree updates Mathew McBride
                   ` (4 preceding siblings ...)
  2025-08-13  2:34 ` [PATCH v2 0/2] dt-bindings: mfd: add Ten64 board controller Mathew McBride
@ 2025-08-13  2:34 ` Mathew McBride
  2025-08-13  7:40   ` Krzysztof Kozlowski
  2025-08-21  6:11   ` [PATCH v3 0/2] dt-bindings: mfd: add " Mathew McBride
  2025-08-13  2:34 ` [PATCH v2 " Mathew McBride
  6 siblings, 2 replies; 19+ messages in thread
From: Mathew McBride @ 2025-08-13  2:34 UTC (permalink / raw)
  To: devicetree, linux-arm-kernel
  Cc: Shawn Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Lee Jones, Mathew McBride

This adds the device tree binding for the board
(micro)controller on Ten64 family boards[1].

The schema is simple and is (presently) only
consumed by U-Boot, but it is possible that
it could be consumed by nvmem or other type
drivers in the future, as well as extended
to future Traverse boards.

[1] https://ten64doc.traverse.com.au/hardware/microcontroller/

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 .../mfd/traverse,ten64-controller.yaml        | 44 +++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml

diff --git a/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml b/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml
new file mode 100644
index 000000000000..13fed94e8406
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/traverse,ten64-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Traverse Ten64 board microontroller
+
+maintainers:
+  - Mathew McBride <matt@traverse.com.au>
+
+description: |
+  The board microcontroller on the Ten64 board family is
+  reponsible for management of power sources on the board,
+  as well as signalling the SoC to power on and reset.
+  It also implements useful auxiliary functions like bootcount,
+  serial/MAC address storage and scratch registers.
+
+properties:
+  compatible:
+    const: traverse,ten64-controller
+
+  reg:
+    description:
+      I2C device address.
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        board-controller@7e {
+          compatible = "traverse,ten64-controller";
+          reg = <0x7e>;
+        };
+    };
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 2/2] arm: dts: freescale: ten64: add board controller binding
  2023-05-01  6:47 [PATCH 0/4] Ten64 (NXP LS1088A) device tree updates Mathew McBride
                   ` (5 preceding siblings ...)
  2025-08-13  2:34 ` [PATCH v2 1/2] dt-bindings: mfd: add Traverse " Mathew McBride
@ 2025-08-13  2:34 ` Mathew McBride
  6 siblings, 0 replies; 19+ messages in thread
From: Mathew McBride @ 2025-08-13  2:34 UTC (permalink / raw)
  To: devicetree, linux-arm-kernel
  Cc: Shawn Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Lee Jones, Mathew McBride

The board (micro)controller[1] is responsible for functions
such as power supply sequencing, SoC reset as well
as serial/MAC address storage, bootcount and scratch registers.

There is currently no Linux kernel driver for this
controller, however, there is a driver in U-Boot
which utilises this binding.

[1] https://ten64doc.traverse.com.au/hardware/microcontroller/

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
index 3a11068f2212..71765ec91745 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -253,6 +253,10 @@ usbhub: usb-hub@2d {
 		reg = <0x2d>;
 	};
 
+	uc: board-controller@7e {
+		compatible = "traverse,ten64-controller";
+		reg = <0x7e>;
+	};
 };
 
 &i2c2 {
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: mfd: add Traverse Ten64 board controller
  2025-08-13  2:34 ` [PATCH v2 1/2] dt-bindings: mfd: add Traverse " Mathew McBride
@ 2025-08-13  7:40   ` Krzysztof Kozlowski
  2025-08-21  6:11   ` [PATCH v3 0/2] dt-bindings: mfd: add " Mathew McBride
  1 sibling, 0 replies; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-08-13  7:40 UTC (permalink / raw)
  To: Mathew McBride, devicetree, linux-arm-kernel
  Cc: Shawn Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Lee Jones

On 13/08/2025 04:34, Mathew McBride wrote:
> This adds the device tree binding for the board

Please do not use "This commit/patch/change", but imperative mood. See
longer explanation here:
https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95


> (micro)controller on Ten64 family boards[1].
> 
> The schema is simple and is (presently) only
> consumed by U-Boot, but it is possible that
> it could be consumed by nvmem or other type
> drivers in the future, as well as extended
> to future Traverse boards.

Please wrap commit message according to Linux coding style / submission
process (neither too early nor over the limit):
https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submitting-patches.rst#L597

> 
> [1] https://ten64doc.traverse.com.au/hardware/microcontroller/
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  .../mfd/traverse,ten64-controller.yaml        | 44 +++++++++++++++++++
>  1 file changed, 44 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml
> 
> diff --git a/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml b/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml
> new file mode 100644
> index 000000000000..13fed94e8406
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml
> @@ -0,0 +1,44 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/traverse,ten64-controller.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Traverse Ten64 board microontroller

typo

> +
> +maintainers:
> +  - Mathew McBride <matt@traverse.com.au>
> +
> +description: |

Do not need '|' unless you need to preserve formatting.

> +  The board microcontroller on the Ten64 board family is
> +  reponsible for management of power sources on the board,

typo

> +  as well as signalling the SoC to power on and reset.
> +  It also implements useful auxiliary functions like bootcount,
> +  serial/MAC address storage and scratch registers.
> +
> +properties:
> +  compatible:
> +    const: traverse,ten64-controller
> +
> +  reg:
> +    description:
> +      I2C device address.

Drop description, obvious.

> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        board-controller@7e {
> +          compatible = "traverse,ten64-controller";

Inconsistent indentation.

> +          reg = <0x7e>;
> +        };
> +    };


Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v3 0/2] dt-bindings: mfd: add Ten64 board controller
  2025-08-13  2:34 ` [PATCH v2 1/2] dt-bindings: mfd: add Traverse " Mathew McBride
  2025-08-13  7:40   ` Krzysztof Kozlowski
@ 2025-08-21  6:11   ` Mathew McBride
  2025-08-21  6:11     ` [PATCH v3 1/2] dt-bindings: mfd: add Traverse " Mathew McBride
  2025-08-21  6:11     ` [PATCH v3 2/2] arm: dts: freescale: ten64: add board controller binding Mathew McBride
  1 sibling, 2 replies; 19+ messages in thread
From: Mathew McBride @ 2025-08-21  6:11 UTC (permalink / raw)
  To: devicetree, linux-arm-kernel
  Cc: Shawn Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Lee Jones, Mathew McBride

This is a rework of a binding I submitted a while ago (2023)[1].

Because the nature of the device-tree binding was very simple (it is an I2C
device with no configuration parameters apart from the I2C endpoint address),
I had submitted it as a "trivial" device.  I now understand that is not the
right approach.

I have categorised the controller as a MFD device, following devices of
a similar nature, such as "gw,gsc", "google,chros-ec" and "kontron,sl28cpld".

Unlike these devices, there are currently no child "MFD" features available,
but it is possible there could be bindings for nvmem or other functions in the future.

[1] https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230501064727.8921-2-matt@traverse.com.au/

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
Changes in v2 (2025):
  - Create dt-binding yaml file and categorise as an 'mfd' device
  - Removed the unrelated MMC controller fix, which will be submitted separately
  at another time

Changes in v3:
  - Fix typos and style issues in yaml and commit message
---
Mathew McBride (2):
  dt-bindings: mfd: add Traverse Ten64 board controller
  arm: dts: freescale: ten64: add board controller binding

 .../mfd/traverse,ten64-controller.yaml        | 45 +++++++++++++++++++
 .../boot/dts/freescale/fsl-ls1088a-ten64.dts  |  4 ++
 2 files changed, 49 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml

-- 
2.45.1



^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v3 1/2] dt-bindings: mfd: add Traverse Ten64 board controller
  2025-08-21  6:11   ` [PATCH v3 0/2] dt-bindings: mfd: add " Mathew McBride
@ 2025-08-21  6:11     ` Mathew McBride
  2025-08-21  6:19       ` Krzysztof Kozlowski
  2025-08-21  6:11     ` [PATCH v3 2/2] arm: dts: freescale: ten64: add board controller binding Mathew McBride
  1 sibling, 1 reply; 19+ messages in thread
From: Mathew McBride @ 2025-08-21  6:11 UTC (permalink / raw)
  To: devicetree, linux-arm-kernel
  Cc: Shawn Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Lee Jones, Mathew McBride

Add device tree binding for the board (micro)controller on Ten64 family
boards[1].

The schema is simple and is (presently) only consumed by U-Boot, but it
is possible that it could be consumed by nvmem or other type drivers in
the future, as well as extended to future Traverse boards.

The categorisation as a "MFD" follows that of comparable devices such
as "gw,gsc", "google,chros-ec" and "kontron,sl28cpld".

[1] https://ten64doc.traverse.com.au/hardware/microcontroller/

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 .../mfd/traverse,ten64-controller.yaml        | 45 +++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml

diff --git a/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml b/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml
new file mode 100644
index 0000000000000..4e2f2063605cd
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/traverse,ten64-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Traverse Ten64 board microcontroller
+
+maintainers:
+  - Mathew McBride <matt@traverse.com.au>
+
+description: |
+  The board microcontroller on the Ten64 board family is responsible for
+  management of power sources on the board, as well as signalling the SoC
+  to power on and reset.
+
+  Communication between the SoC and controller is via I2C, at a fixed address
+  of 0x7e. While the controller firmware implements several functions, there
+  are presently no parameters that are configurable by DT properties, except
+  those that are required of an I2C bus endpoint.
+
+properties:
+  compatible:
+    const: traverse,ten64-controller
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        board-controller@7e {
+            compatible = "traverse,ten64-controller";
+            reg = <0x7e>;
+        };
+    };
-- 
2.45.1



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v3 2/2] arm: dts: freescale: ten64: add board controller binding
  2025-08-21  6:11   ` [PATCH v3 0/2] dt-bindings: mfd: add " Mathew McBride
  2025-08-21  6:11     ` [PATCH v3 1/2] dt-bindings: mfd: add Traverse " Mathew McBride
@ 2025-08-21  6:11     ` Mathew McBride
  1 sibling, 0 replies; 19+ messages in thread
From: Mathew McBride @ 2025-08-21  6:11 UTC (permalink / raw)
  To: devicetree, linux-arm-kernel
  Cc: Shawn Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Lee Jones, Mathew McBride

The board (micro)controller[1] is responsible for functions such as
power supply sequencing, SoC reset as well as serial/MAC address storage,
bootcount and scratch registers.

There is currently no Linux kernel driver for this controller, however,
there is a driver in U-Boot which utilises this binding.

[1] https://ten64doc.traverse.com.au/hardware/microcontroller/

Signed-off-by: Mathew McBride <matt@traverse.com.au>
---
 arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
index 3a11068f2212f..71765ec91745e 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-ten64.dts
@@ -253,6 +253,10 @@ usbhub: usb-hub@2d {
 		reg = <0x2d>;
 	};
 
+	uc: board-controller@7e {
+		compatible = "traverse,ten64-controller";
+		reg = <0x7e>;
+	};
 };
 
 &i2c2 {
-- 
2.45.1



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH v3 1/2] dt-bindings: mfd: add Traverse Ten64 board controller
  2025-08-21  6:11     ` [PATCH v3 1/2] dt-bindings: mfd: add Traverse " Mathew McBride
@ 2025-08-21  6:19       ` Krzysztof Kozlowski
  2025-08-21  6:21         ` Krzysztof Kozlowski
  2025-08-21  6:35         ` Mathew McBride
  0 siblings, 2 replies; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-08-21  6:19 UTC (permalink / raw)
  To: Mathew McBride, devicetree, linux-arm-kernel
  Cc: Shawn Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Lee Jones

On 21/08/2025 08:11, Mathew McBride wrote:
> Add device tree binding for the board (micro)controller on Ten64 family
> boards[1].
> 

Do not attach (thread) your patchsets to some other threads (unrelated
or older versions). This buries them deep in the mailbox and might
interfere with applying entire sets.

> The schema is simple and is (presently) only consumed by U-Boot, but it
> is possible that it could be consumed by nvmem or other type drivers in
> the future, as well as extended to future Traverse boards.
> 
> The categorisation as a "MFD" follows that of comparable devices such
> as "gw,gsc", "google,chros-ec" and "kontron,sl28cpld".

That is not MFD device. Google EC is for example, but you have only one
function. I think we will move all of them to some separate ec directory.

> 
> [1] https://ten64doc.traverse.com.au/hardware/microcontroller/
> 
> Signed-off-by: Mathew McBride <matt@traverse.com.au>
> ---
>  .../mfd/traverse,ten64-controller.yaml        | 45 +++++++++++++++++++
>  1 file changed, 45 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml
> 
> diff --git a/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml b/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml
> new file mode 100644
> index 0000000000000..4e2f2063605cd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/traverse,ten64-controller.yaml
> @@ -0,0 +1,45 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/traverse,ten64-controller.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Traverse Ten64 board microcontroller
> +
> +maintainers:
> +  - Mathew McBride <matt@traverse.com.au>
> +
> +description: |
> +  The board microcontroller on the Ten64 board family is responsible for
> +  management of power sources on the board, as well as signalling the SoC
> +  to power on and reset.
> +
> +  Communication between the SoC and controller is via I2C, at a fixed address

Either you make it a schema or drop it.

> +  of 0x7e. While the controller firmware implements several functions, there
> +  are presently no parameters that are configurable by DT properties, except
> +  those that are required of an I2C bus endpoint.

This paragraph wasn't here before. It's completely redundant, drop.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v3 1/2] dt-bindings: mfd: add Traverse Ten64 board controller
  2025-08-21  6:19       ` Krzysztof Kozlowski
@ 2025-08-21  6:21         ` Krzysztof Kozlowski
  2025-08-21  6:35         ` Mathew McBride
  1 sibling, 0 replies; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-08-21  6:21 UTC (permalink / raw)
  To: Mathew McBride, devicetree, linux-arm-kernel
  Cc: Shawn Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Lee Jones

On 21/08/2025 08:19, Krzysztof Kozlowski wrote:
> On 21/08/2025 08:11, Mathew McBride wrote:
>> Add device tree binding for the board (micro)controller on Ten64 family
>> boards[1].
>>
> 
> Do not attach (thread) your patchsets to some other threads (unrelated
> or older versions). This buries them deep in the mailbox and might
> interfere with applying entire sets.
> 
>> The schema is simple and is (presently) only consumed by U-Boot, but it
>> is possible that it could be consumed by nvmem or other type drivers in
>> the future, as well as extended to future Traverse boards.
>>
>> The categorisation as a "MFD" follows that of comparable devices such
>> as "gw,gsc", "google,chros-ec" and "kontron,sl28cpld".
> 
> That is not MFD device. Google EC is for example, but you have only one
> function. I think we will move all of them to some separate ec directory.

gw,gsc and kontrol are also MFD from Linux point of view, so that was
justified. Your case is not justified at all.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v3 1/2] dt-bindings: mfd: add Traverse Ten64 board controller
  2025-08-21  6:19       ` Krzysztof Kozlowski
  2025-08-21  6:21         ` Krzysztof Kozlowski
@ 2025-08-21  6:35         ` Mathew McBride
  2025-08-21  6:41           ` Krzysztof Kozlowski
  1 sibling, 1 reply; 19+ messages in thread
From: Mathew McBride @ 2025-08-21  6:35 UTC (permalink / raw)
  To: Krzysztof Kozlowski; +Cc: devicetree, linux-arm-kernel

Hi Krzysztof,

Thank for your feedback.

On Thu, Aug 21, 2025, at 4:19 PM, Krzysztof Kozlowski wrote:
> On 21/08/2025 08:11, Mathew McBride wrote:
> > Add device tree binding for the board (micro)controller on Ten64 family
> > boards[1].
> > 
> 
> Do not attach (thread) your patchsets to some other threads (unrelated
> or older versions). This buries them deep in the mailbox and might
> interfere with applying entire sets.
> 
Understood, my apologies.

> > The schema is simple and is (presently) only consumed by U-Boot, but it
> > is possible that it could be consumed by nvmem or other type drivers in
> > the future, as well as extended to future Traverse boards.
> > 
> > The categorisation as a "MFD" follows that of comparable devices such
> > as "gw,gsc", "google,chros-ec" and "kontron,sl28cpld".
> 
> That is not MFD device. Google EC is for example, but you have only one
> function. I think we will move all of them to some separate ec directory.

Noted, I will wait for that change to progress before moving any further with this.

Hypothetically, the ten64-controller may acquire some sort of "child" binding such as
watchdog and nvmem in the future, similar to the other "EC" devices, there just has not
been a need to do so yet.

[snip]

> > +  Communication between the SoC and controller is via I2C, at a fixed address
> 
> Either you make it a schema or drop it.
Is this in reference to the "fixed address"? In which case, I'll remove references to any fixed address.
> 
> > +  of 0x7e. While the controller firmware implements several functions, there
> > +  are presently no parameters that are configurable by DT properties, except
> > +  those that are required of an I2C bus endpoint.
> 
> This paragraph wasn't here before. It's completely redundant, drop.
Will be removed as noted above.
> 
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 
> Best regards,
> Krzysztof
> 

Many Thanks,
Matt


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v3 1/2] dt-bindings: mfd: add Traverse Ten64 board controller
  2025-08-21  6:35         ` Mathew McBride
@ 2025-08-21  6:41           ` Krzysztof Kozlowski
  0 siblings, 0 replies; 19+ messages in thread
From: Krzysztof Kozlowski @ 2025-08-21  6:41 UTC (permalink / raw)
  To: Mathew McBride; +Cc: devicetree, linux-arm-kernel

On 21/08/2025 08:35, Mathew McBride wrote:
> 
>>> +  Communication between the SoC and controller is via I2C, at a fixed address
>>
>> Either you make it a schema or drop it.
> Is this in reference to the "fixed address"? In which case, I'll remove references to any fixed address.

Yes. You can make it 'const: 0x7e' in the binding as well.

nks,
> Matt


Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2025-08-21  7:20 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-01  6:47 [PATCH 0/4] Ten64 (NXP LS1088A) device tree updates Mathew McBride
2023-05-01  6:47 ` [PATCH 1/4] dt-bindings: trivial-devices: add traverse,ten64-controller Mathew McBride
2023-05-02  8:02   ` Krzysztof Kozlowski
2023-05-05 20:47     ` Rob Herring
2023-05-05 20:48     ` Rob Herring
2023-05-01  6:47 ` [PATCH 2/4] arm64: dts: freescale: ten64: add board microcontroller binding Mathew McBride
2023-05-01  6:47 ` [PATCH 3/4] arm64: dts: freescale: ten64: reduce maximum SD card frequency Mathew McBride
2023-05-01  6:47 ` [PATCH 4/4] arm64: dts: freescale: ten64: fix header typo and update copyright Mathew McBride
2025-08-13  2:34 ` [PATCH v2 0/2] dt-bindings: mfd: add Ten64 board controller Mathew McBride
2025-08-13  2:34 ` [PATCH v2 1/2] dt-bindings: mfd: add Traverse " Mathew McBride
2025-08-13  7:40   ` Krzysztof Kozlowski
2025-08-21  6:11   ` [PATCH v3 0/2] dt-bindings: mfd: add " Mathew McBride
2025-08-21  6:11     ` [PATCH v3 1/2] dt-bindings: mfd: add Traverse " Mathew McBride
2025-08-21  6:19       ` Krzysztof Kozlowski
2025-08-21  6:21         ` Krzysztof Kozlowski
2025-08-21  6:35         ` Mathew McBride
2025-08-21  6:41           ` Krzysztof Kozlowski
2025-08-21  6:11     ` [PATCH v3 2/2] arm: dts: freescale: ten64: add board controller binding Mathew McBride
2025-08-13  2:34 ` [PATCH v2 " Mathew McBride

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).