1169689Skan# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2169689Skan%YAML 1.2
3171825Skan---
4169689Skan$id: http://devicetree.org/schemas/ufs/hisilicon,ufs.yaml#
5169689Skan$schema: http://devicetree.org/meta-schemas/core.yaml#
6169689Skan
7169689Skantitle: HiSilicon Universal Flash Storage (UFS) Controller
8169689Skan
9169689Skanmaintainers:
10169689Skan  - Li Wei <liwei213@huawei.com>
11169689Skan
12169689Skan# Select only our matches, not all jedec,ufs
13169689Skanselect:
14169689Skan  properties:
15169689Skan    compatible:
16169689Skan      contains:
17169689Skan        enum:
18169689Skan          - hisilicon,hi3660-ufs
19169689Skan          - hisilicon,hi3670-ufs
20169689Skan  required:
21169689Skan    - compatible
22169689Skan
23169689SkanallOf:
24169689Skan  - $ref: ufs-common.yaml
25169689Skan
26169689Skanproperties:
27169689Skan  compatible:
28169689Skan    oneOf:
29169689Skan      - items:
30169689Skan          - const: hisilicon,hi3660-ufs
31169689Skan          - const: jedec,ufs-1.1
32169689Skan      - items:
33169689Skan          - enum:
34169689Skan              - hisilicon,hi3670-ufs
35169689Skan          - const: jedec,ufs-2.1
36169689Skan
37169689Skan  clocks:
38169689Skan    minItems: 2
39169689Skan    maxItems: 2
40169689Skan
41169689Skan  clock-names:
42169689Skan    items:
43169689Skan      - const: ref_clk
44169689Skan      - const: phy_clk
45169689Skan
46169689Skan  reg:
47169689Skan    items:
48169689Skan      - description: UFS register address space
49169689Skan      - description: UFS SYS CTRL register address space
50169689Skan
51169689Skan  resets:
52169689Skan    maxItems: 1
53169689Skan
54169689Skan  reset-names:
55169689Skan    items:
56169689Skan      - const: rst
57169689Skan
58169689Skanrequired:
59169689Skan  - compatible
60169689Skan  - reg
61169689Skan  - resets
62169689Skan  - reset-names
63169689Skan
64169689SkanunevaluatedProperties: false
65169689Skan
66169689Skanexamples:
67169689Skan  - |
68169689Skan    #include <dt-bindings/clock/hi3670-clock.h>
69169689Skan    #include <dt-bindings/interrupt-controller/arm-gic.h>
70169689Skan
71169689Skan    soc {
72169689Skan        #address-cells = <2>;
73169689Skan        #size-cells = <2>;
74169689Skan
75169689Skan        ufs@ff3c0000 {
76169689Skan            compatible = "hisilicon,hi3670-ufs", "jedec,ufs-2.1";
77169689Skan            reg = <0x0 0xff3c0000 0x0 0x1000>,
78169689Skan                  <0x0 0xff3e0000 0x0 0x1000>;
79169689Skan            interrupt-parent = <&gic>;
80169689Skan            interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
81169689Skan            clocks = <&crg_ctrl HI3670_CLK_GATE_UFSIO_REF>,
82169689Skan                     <&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;
83169689Skan            clock-names = "ref_clk", "phy_clk";
84169689Skan            freq-table-hz = <0 0>,
85169689Skan                            <0 0>;
86169689Skan
87169689Skan            resets = <&crg_rst 0x84 12>;
88169689Skan            reset-names = "rst";
89169689Skan        };
90169689Skan    };
91169689Skan