1*516075a2SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*516075a2SKrzysztof Kozlowski%YAML 1.2
3*516075a2SKrzysztof Kozlowski---
4*516075a2SKrzysztof Kozlowski$id: http://devicetree.org/schemas/ufs/hisilicon,ufs.yaml#
5*516075a2SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*516075a2SKrzysztof Kozlowski
7*516075a2SKrzysztof Kozlowskititle: HiSilicon Universal Flash Storage (UFS) Controller
8*516075a2SKrzysztof Kozlowski
9*516075a2SKrzysztof Kozlowskimaintainers:
10*516075a2SKrzysztof Kozlowski  - Li Wei <liwei213@huawei.com>
11*516075a2SKrzysztof Kozlowski
12*516075a2SKrzysztof Kozlowski# Select only our matches, not all jedec,ufs
13*516075a2SKrzysztof Kozlowskiselect:
14*516075a2SKrzysztof Kozlowski  properties:
15*516075a2SKrzysztof Kozlowski    compatible:
16*516075a2SKrzysztof Kozlowski      contains:
17*516075a2SKrzysztof Kozlowski        enum:
18*516075a2SKrzysztof Kozlowski          - hisilicon,hi3660-ufs
19*516075a2SKrzysztof Kozlowski          - hisilicon,hi3670-ufs
20*516075a2SKrzysztof Kozlowski  required:
21*516075a2SKrzysztof Kozlowski    - compatible
22*516075a2SKrzysztof Kozlowski
23*516075a2SKrzysztof KozlowskiallOf:
24*516075a2SKrzysztof Kozlowski  - $ref: ufs-common.yaml
25*516075a2SKrzysztof Kozlowski
26*516075a2SKrzysztof Kozlowskiproperties:
27*516075a2SKrzysztof Kozlowski  compatible:
28*516075a2SKrzysztof Kozlowski    oneOf:
29*516075a2SKrzysztof Kozlowski      - items:
30*516075a2SKrzysztof Kozlowski          - const: hisilicon,hi3660-ufs
31*516075a2SKrzysztof Kozlowski          - const: jedec,ufs-1.1
32*516075a2SKrzysztof Kozlowski      - items:
33*516075a2SKrzysztof Kozlowski          - enum:
34*516075a2SKrzysztof Kozlowski              - hisilicon,hi3670-ufs
35*516075a2SKrzysztof Kozlowski          - const: jedec,ufs-2.1
36*516075a2SKrzysztof Kozlowski
37*516075a2SKrzysztof Kozlowski  clocks:
38*516075a2SKrzysztof Kozlowski    minItems: 2
39*516075a2SKrzysztof Kozlowski    maxItems: 2
40*516075a2SKrzysztof Kozlowski
41*516075a2SKrzysztof Kozlowski  clock-names:
42*516075a2SKrzysztof Kozlowski    items:
43*516075a2SKrzysztof Kozlowski      - const: ref_clk
44*516075a2SKrzysztof Kozlowski      - const: phy_clk
45*516075a2SKrzysztof Kozlowski
46*516075a2SKrzysztof Kozlowski  reg:
47*516075a2SKrzysztof Kozlowski    items:
48*516075a2SKrzysztof Kozlowski      - description: UFS register address space
49*516075a2SKrzysztof Kozlowski      - description: UFS SYS CTRL register address space
50*516075a2SKrzysztof Kozlowski
51*516075a2SKrzysztof Kozlowski  resets:
52*516075a2SKrzysztof Kozlowski    maxItems: 1
53*516075a2SKrzysztof Kozlowski
54*516075a2SKrzysztof Kozlowski  reset-names:
55*516075a2SKrzysztof Kozlowski    items:
56*516075a2SKrzysztof Kozlowski      - const: rst
57*516075a2SKrzysztof Kozlowski
58*516075a2SKrzysztof Kozlowskirequired:
59*516075a2SKrzysztof Kozlowski  - compatible
60*516075a2SKrzysztof Kozlowski  - reg
61*516075a2SKrzysztof Kozlowski  - resets
62*516075a2SKrzysztof Kozlowski  - reset-names
63*516075a2SKrzysztof Kozlowski
64*516075a2SKrzysztof KozlowskiunevaluatedProperties: false
65*516075a2SKrzysztof Kozlowski
66*516075a2SKrzysztof Kozlowskiexamples:
67*516075a2SKrzysztof Kozlowski  - |
68*516075a2SKrzysztof Kozlowski    #include <dt-bindings/clock/hi3670-clock.h>
69*516075a2SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
70*516075a2SKrzysztof Kozlowski
71*516075a2SKrzysztof Kozlowski    soc {
72*516075a2SKrzysztof Kozlowski        #address-cells = <2>;
73*516075a2SKrzysztof Kozlowski        #size-cells = <2>;
74*516075a2SKrzysztof Kozlowski
75*516075a2SKrzysztof Kozlowski        ufs@ff3c0000 {
76*516075a2SKrzysztof Kozlowski            compatible = "hisilicon,hi3670-ufs", "jedec,ufs-2.1";
77*516075a2SKrzysztof Kozlowski            reg = <0x0 0xff3c0000 0x0 0x1000>,
78*516075a2SKrzysztof Kozlowski                  <0x0 0xff3e0000 0x0 0x1000>;
79*516075a2SKrzysztof Kozlowski            interrupt-parent = <&gic>;
80*516075a2SKrzysztof Kozlowski            interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
81*516075a2SKrzysztof Kozlowski            clocks = <&crg_ctrl HI3670_CLK_GATE_UFSIO_REF>,
82*516075a2SKrzysztof Kozlowski                     <&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;
83*516075a2SKrzysztof Kozlowski            clock-names = "ref_clk", "phy_clk";
84*516075a2SKrzysztof Kozlowski            freq-table-hz = <0 0>,
85*516075a2SKrzysztof Kozlowski                            <0 0>;
86*516075a2SKrzysztof Kozlowski
87*516075a2SKrzysztof Kozlowski            resets = <&crg_rst 0x84 12>;
88*516075a2SKrzysztof Kozlowski            reset-names = "rst";
89*516075a2SKrzysztof Kozlowski        };
90*516075a2SKrzysztof Kozlowski    };
91