# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/sophgo/sophgo,cv1800b-top-syscon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sophgo CV18XX/SG200X SoC top system controller

maintainers:
  - Inochi Amaoto <inochiama@outlook.com>

description:
  The Sophgo CV18XX/SG200X SoC top misc system controller provides
  register access to configure related modules.

properties:
  compatible:
    oneOf:
      - items:
          - const: sophgo,cv1800b-top-syscon
          - const: syscon
          - const: simple-mfd

  reg:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 1

  ranges: true

  dma-router@154:
    $ref: /schemas/dma/sophgo,cv1800b-dmamux.yaml#
    unevaluatedProperties: false

  phy@48:
    $ref: /schemas/phy/sophgo,cv1800b-usb2-phy.yaml#
    unevaluatedProperties: false

required:
  - compatible
  - reg
  - "#address-cells"
  - "#size-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/sophgo,cv1800.h>

    syscon@3000000 {
      compatible = "sophgo,cv1800b-top-syscon", "syscon", "simple-mfd";
      reg = <0x03000000 0x1000>;
      #address-cells = <1>;
      #size-cells = <1>;

      phy@48 {
        compatible = "sophgo,cv1800b-usb2-phy";
        reg = <0x48 0x4>;
        #phy-cells = <0>;
        clocks = <&clk CLK_USB_125M>,
                 <&clk CLK_USB_33K>,
                 <&clk CLK_USB_12M>;
        clock-names = "app", "stb", "lpm";
        resets = <&rst 58>;
      };

      dma-router@154 {
        compatible = "sophgo,cv1800b-dmamux";
        reg = <0x154 0x8>, <0x298 0x4>;
        #dma-cells = <2>;
        dma-masters = <&dmac>;
      };
    };

...
