Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/reset/socionext,uniphier-glue-reset.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Socionext UniPhier peripheral core reset in glue layer

description: |
  Some peripheral core reset belongs to its own glue layer. Before using
  this core reset, it is necessary to control the clocks and resets to
  enable this layer. These clocks and resets should be described in each
  property.

maintainers:
  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>

properties:
  compatible:
    enum:
      - socionext,uniphier-pro4-usb3-reset
      - socionext,uniphier-pro5-usb3-reset
      - socionext,uniphier-pxs2-usb3-reset
      - socionext,uniphier-ld20-usb3-reset
      - socionext,uniphier-pxs3-usb3-reset
      - socionext,uniphier-nx1-usb3-reset
      - socionext,uniphier-pro4-ahci-reset
      - socionext,uniphier-pxs2-ahci-reset
      - socionext,uniphier-pxs3-ahci-reset

  reg:
    maxItems: 1

  "#reset-cells":
    const: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names: true

  resets:
    minItems: 1
    maxItems: 2

  reset-names: true

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - socionext,uniphier-pro4-usb3-reset
              - socionext,uniphier-pro5-usb3-reset
              - socionext,uniphier-pro4-ahci-reset
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 2
        clock-names:
          items:
            - const: gio
            - const: link
        resets:
          minItems: 2
          maxItems: 2
        reset-names:
          items:
            - const: gio
            - const: link
    else:
      properties:
        clocks:
          maxItems: 1
        clock-names:
          const: link
        resets:
          maxItems: 1
        reset-names:
          const: link

additionalProperties: false

required:
  - compatible
  - reg
  - "#reset-cells"
  - clocks
  - clock-names
  - resets
  - reset-names

examples:
  - |
    usb_rst: reset-controller@0 {
        compatible = "socionext,uniphier-ld20-usb3-reset";
        reg = <0x0 0x4>;
        #reset-cells = <1>;
        clock-names = "link";
        clocks = <&sys_clk 14>;
        reset-names = "link";
        resets = <&sys_rst 14>;
    };