]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
dt-bindings: mfd: Convert lpc1850-creg-clk, pc1850-dmamux and phy-lpc18xx-usb-otg...
authorFrank Li <Frank.Li@nxp.com>
Mon, 2 Jun 2025 14:36:10 +0000 (10:36 -0400)
committerLee Jones <lee@kernel.org>
Thu, 24 Jul 2025 10:26:58 +0000 (11:26 +0100)
Combine the following separate plain text based bindings to YAML:

  lpc1850-creg-clk.txt
  pc1850-dmamux.txt
  phy-lpc18xx-usb-otg.txt

Additional changes:

- remove label in example.
- remove dmamux consumer in example.
- remove clock consumer in example.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: "Rob Herring (Arm)" <robh@kernel.org>
Link: https://lore.kernel.org/r/20250602143612.943516-1-Frank.Li@nxp.com
Signed-off-by: Lee Jones <lee@kernel.org>
Documentation/devicetree/bindings/clock/lpc1850-creg-clk.txt [deleted file]
Documentation/devicetree/bindings/dma/lpc1850-dmamux.txt [deleted file]
Documentation/devicetree/bindings/mfd/nxp,lpc1850-creg.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/phy/phy-lpc18xx-usb-otg.txt [deleted file]

diff --git a/Documentation/devicetree/bindings/clock/lpc1850-creg-clk.txt b/Documentation/devicetree/bindings/clock/lpc1850-creg-clk.txt
deleted file mode 100644 (file)
index b6b2547..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-* NXP LPC1850 CREG clocks
-
-The NXP LPC18xx/43xx CREG (Configuration Registers) block contains
-control registers for two low speed clocks. One of the clocks is a
-32 kHz oscillator driver with power up/down and clock gating. Next
-is a fixed divider that creates a 1 kHz clock from the 32 kHz osc.
-
-These clocks are used by the RTC and the Event Router peripherals.
-The 32 kHz can also be routed to other peripherals to enable low
-power modes.
-
-This binding uses the common clock binding:
-    Documentation/devicetree/bindings/clock/clock-bindings.txt
-
-Required properties:
-- compatible:
-       Should be "nxp,lpc1850-creg-clk"
-- #clock-cells:
-       Shall have value <1>.
-- clocks:
-       Shall contain a phandle to the fixed 32 kHz crystal.
-
-The creg-clk node must be a child of the creg syscon node.
-
-The following clocks are available from the clock node.
-
-Clock ID       Name
-   0            1 kHz clock
-   1           32 kHz Oscillator
-
-Example:
-soc {
-       creg: syscon@40043000 {
-               compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd";
-               reg = <0x40043000 0x1000>;
-
-               creg_clk: clock-controller {
-                       compatible = "nxp,lpc1850-creg-clk";
-                       clocks = <&xtal32>;
-                       #clock-cells = <1>;
-               };
-
-               ...
-       };
-
-       rtc: rtc@40046000 {
-               ...
-               clocks = <&creg_clk 0>, <&ccu1 CLK_CPU_BUS>;
-               clock-names = "rtc", "reg";
-               ...
-       };
-};
diff --git a/Documentation/devicetree/bindings/dma/lpc1850-dmamux.txt b/Documentation/devicetree/bindings/dma/lpc1850-dmamux.txt
deleted file mode 100644 (file)
index 87740ad..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-NXP LPC18xx/43xx DMA MUX (DMA request router)
-
-Required properties:
-- compatible:  "nxp,lpc1850-dmamux"
-- reg:         Memory map for accessing module
-- #dma-cells:  Should be set to <3>.
-               * 1st cell contain the master dma request signal
-               * 2nd cell contain the mux value (0-3) for the peripheral
-               * 3rd cell contain either 1 or 2 depending on the AHB
-                 master used.
-- dma-requests:        Number of DMA requests for the mux
-- dma-masters: phandle pointing to the DMA controller
-
-The DMA controller node need to have the following poroperties:
-- dma-requests:        Number of DMA requests the controller can handle
-
-Example:
-
-dmac: dma@40002000 {
-       compatible = "nxp,lpc1850-gpdma", "arm,pl080", "arm,primecell";
-       arm,primecell-periphid = <0x00041080>;
-       reg = <0x40002000 0x1000>;
-       interrupts = <2>;
-       clocks = <&ccu1 CLK_CPU_DMA>;
-       clock-names = "apb_pclk";
-       #dma-cells = <2>;
-       dma-channels = <8>;
-       dma-requests = <16>;
-       lli-bus-interface-ahb1;
-       lli-bus-interface-ahb2;
-       mem-bus-interface-ahb1;
-       mem-bus-interface-ahb2;
-       memcpy-burst-size = <256>;
-       memcpy-bus-width = <32>;
-};
-
-dmamux: dma-mux {
-       compatible = "nxp,lpc1850-dmamux";
-       #dma-cells = <3>;
-       dma-requests = <64>;
-       dma-masters = <&dmac>;
-};
-
-uart0: serial@40081000 {
-       compatible = "nxp,lpc1850-uart", "ns16550a";
-       reg = <0x40081000 0x1000>;
-       reg-shift = <2>;
-       interrupts = <24>;
-       clocks = <&ccu2 CLK_APB0_UART0>, <&ccu1 CLK_CPU_UART0>;
-       clock-names = "uartclk", "reg";
-       dmas = <&dmamux 1 1 2
-               &dmamux 2 1 2>;
-       dma-names = "tx", "rx";
-};
diff --git a/Documentation/devicetree/bindings/mfd/nxp,lpc1850-creg.yaml b/Documentation/devicetree/bindings/mfd/nxp,lpc1850-creg.yaml
new file mode 100644 (file)
index 0000000..89b4892
--- /dev/null
@@ -0,0 +1,148 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/nxp,lpc1850-creg.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: The NXP LPC18xx/43xx CREG (Configuration Registers) block
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - nxp,lpc1850-creg
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  clock-controller:
+    type: object
+    description:
+      The NXP LPC18xx/43xx CREG (Configuration Registers) block contains
+      control registers for two low speed clocks. One of the clocks is a
+      32 kHz oscillator driver with power up/down and clock gating. Next
+      is a fixed divider that creates a 1 kHz clock from the 32 kHz osc.
+
+      These clocks are used by the RTC and the Event Router peripherals.
+      The 32 kHz can also be routed to other peripherals to enable low
+      power modes.
+
+    properties:
+      compatible:
+        const: nxp,lpc1850-creg-clk
+
+      clocks:
+        maxItems: 1
+
+      '#clock-cells':
+        const: 1
+        description: |
+          0            1 kHz clock
+          1           32 kHz Oscillator
+
+    required:
+      - compatible
+      - clocks
+      - '#clock-cells'
+
+    additionalProperties: false
+
+  phy:
+    type: object
+    description: the internal USB OTG PHY in NXP LPC18xx and LPC43xx SoCs
+    properties:
+      compatible:
+        const: nxp,lpc1850-usb-otg-phy
+
+      clocks:
+        maxItems: 1
+
+      '#phy-cells':
+        const: 0
+
+    required:
+      - compatible
+      - clocks
+      - '#phy-cells'
+
+    additionalProperties: false
+
+  dma-mux:
+    type: object
+    description: NXP LPC18xx/43xx DMA MUX (DMA request router)
+    properties:
+      compatible:
+        const: nxp,lpc1850-dmamux
+
+      '#dma-cells':
+        const: 3
+        description: |
+          Should be set to <3>.
+          * 1st cell contain the master dma request signal
+          * 2nd cell contain the mux value (0-3) for the peripheral
+          * 3rd cell contain either 1 or 2 depending on the AHB  master used.
+
+      dma-requests:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        maximum: 64
+        description: Number of DMA requests the controller can handle
+
+      dma-masters:
+        $ref: /schemas/types.yaml#/definitions/phandle
+        description: phandle pointing to the DMA controller
+
+    required:
+      - compatible
+      - '#dma-cells'
+      - dma-masters
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - resets
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/lpc18xx-ccu.h>
+
+    syscon@40043000 {
+        compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd";
+        reg = <0x40043000 0x1000>;
+        clocks = <&ccu1 CLK_CPU_CREG>;
+        resets = <&rgu 5>;
+
+        clock-controller {
+            compatible = "nxp,lpc1850-creg-clk";
+            clocks = <&xtal32>;
+            #clock-cells = <1>;
+        };
+
+        phy {
+            compatible = "nxp,lpc1850-usb-otg-phy";
+            clocks = <&ccu1 CLK_USB0>;
+            #phy-cells = <0>;
+        };
+
+        dma-mux {
+            compatible = "nxp,lpc1850-dmamux";
+            #dma-cells = <3>;
+            dma-requests = <64>;
+            dma-masters = <&dmac>;
+        };
+    };
diff --git a/Documentation/devicetree/bindings/phy/phy-lpc18xx-usb-otg.txt b/Documentation/devicetree/bindings/phy/phy-lpc18xx-usb-otg.txt
deleted file mode 100644 (file)
index 3bb821c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-NXP LPC18xx/43xx internal USB OTG PHY binding
----------------------------------------------
-
-This file contains documentation for the internal USB OTG PHY found
-in NXP LPC18xx and LPC43xx SoCs.
-
-Required properties:
-- compatible   : must be "nxp,lpc1850-usb-otg-phy"
-- clocks       : must be exactly one entry
-See: Documentation/devicetree/bindings/clock/clock-bindings.txt
-- #phy-cells   : must be 0 for this phy
-See: Documentation/devicetree/bindings/phy/phy-bindings.txt
-
-The phy node must be a child of the creg syscon node.
-
-Example:
-creg: syscon@40043000 {
-       compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd";
-       reg = <0x40043000 0x1000>;
-
-       usb0_otg_phy: phy {
-               compatible = "nxp,lpc1850-usb-otg-phy";
-               clocks = <&ccu1 CLK_USB0>;
-               #phy-cells = <0>;
-       };
-};