xref: /freebsd/sys/contrib/device-tree/Bindings/ufs/rockchip,rk3576-ufshc.yaml (revision 8ccc0d235c226d84112561d453c49904398d085c)
1*8ccc0d23SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*8ccc0d23SEmmanuel Vadot%YAML 1.2
3*8ccc0d23SEmmanuel Vadot---
4*8ccc0d23SEmmanuel Vadot$id: http://devicetree.org/schemas/ufs/rockchip,rk3576-ufshc.yaml#
5*8ccc0d23SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8ccc0d23SEmmanuel Vadot
7*8ccc0d23SEmmanuel Vadottitle: Rockchip UFS Host Controller
8*8ccc0d23SEmmanuel Vadot
9*8ccc0d23SEmmanuel Vadotmaintainers:
10*8ccc0d23SEmmanuel Vadot  - Shawn Lin <shawn.lin@rock-chips.com>
11*8ccc0d23SEmmanuel Vadot
12*8ccc0d23SEmmanuel VadotallOf:
13*8ccc0d23SEmmanuel Vadot  - $ref: ufs-common.yaml
14*8ccc0d23SEmmanuel Vadot
15*8ccc0d23SEmmanuel Vadotproperties:
16*8ccc0d23SEmmanuel Vadot  compatible:
17*8ccc0d23SEmmanuel Vadot    const: rockchip,rk3576-ufshc
18*8ccc0d23SEmmanuel Vadot
19*8ccc0d23SEmmanuel Vadot  reg:
20*8ccc0d23SEmmanuel Vadot    maxItems: 5
21*8ccc0d23SEmmanuel Vadot
22*8ccc0d23SEmmanuel Vadot  reg-names:
23*8ccc0d23SEmmanuel Vadot    items:
24*8ccc0d23SEmmanuel Vadot      - const: hci
25*8ccc0d23SEmmanuel Vadot      - const: mphy
26*8ccc0d23SEmmanuel Vadot      - const: hci_grf
27*8ccc0d23SEmmanuel Vadot      - const: mphy_grf
28*8ccc0d23SEmmanuel Vadot      - const: hci_apb
29*8ccc0d23SEmmanuel Vadot
30*8ccc0d23SEmmanuel Vadot  clocks:
31*8ccc0d23SEmmanuel Vadot    maxItems: 4
32*8ccc0d23SEmmanuel Vadot
33*8ccc0d23SEmmanuel Vadot  clock-names:
34*8ccc0d23SEmmanuel Vadot    items:
35*8ccc0d23SEmmanuel Vadot      - const: core
36*8ccc0d23SEmmanuel Vadot      - const: pclk
37*8ccc0d23SEmmanuel Vadot      - const: pclk_mphy
38*8ccc0d23SEmmanuel Vadot      - const: ref_out
39*8ccc0d23SEmmanuel Vadot
40*8ccc0d23SEmmanuel Vadot  power-domains:
41*8ccc0d23SEmmanuel Vadot    maxItems: 1
42*8ccc0d23SEmmanuel Vadot
43*8ccc0d23SEmmanuel Vadot  resets:
44*8ccc0d23SEmmanuel Vadot    maxItems: 4
45*8ccc0d23SEmmanuel Vadot
46*8ccc0d23SEmmanuel Vadot  reset-names:
47*8ccc0d23SEmmanuel Vadot    items:
48*8ccc0d23SEmmanuel Vadot      - const: biu
49*8ccc0d23SEmmanuel Vadot      - const: sys
50*8ccc0d23SEmmanuel Vadot      - const: ufs
51*8ccc0d23SEmmanuel Vadot      - const: grf
52*8ccc0d23SEmmanuel Vadot
53*8ccc0d23SEmmanuel Vadot  reset-gpios:
54*8ccc0d23SEmmanuel Vadot    maxItems: 1
55*8ccc0d23SEmmanuel Vadot    description: |
56*8ccc0d23SEmmanuel Vadot      GPIO specifiers for host to reset the whole UFS device including PHY and
57*8ccc0d23SEmmanuel Vadot      memory. This gpio is active low and should choose the one whose high output
58*8ccc0d23SEmmanuel Vadot      voltage is lower than 1.5V based on the UFS spec.
59*8ccc0d23SEmmanuel Vadot
60*8ccc0d23SEmmanuel Vadotrequired:
61*8ccc0d23SEmmanuel Vadot  - compatible
62*8ccc0d23SEmmanuel Vadot  - reg
63*8ccc0d23SEmmanuel Vadot  - reg-names
64*8ccc0d23SEmmanuel Vadot  - clocks
65*8ccc0d23SEmmanuel Vadot  - clock-names
66*8ccc0d23SEmmanuel Vadot  - interrupts
67*8ccc0d23SEmmanuel Vadot  - power-domains
68*8ccc0d23SEmmanuel Vadot  - resets
69*8ccc0d23SEmmanuel Vadot  - reset-names
70*8ccc0d23SEmmanuel Vadot  - reset-gpios
71*8ccc0d23SEmmanuel Vadot
72*8ccc0d23SEmmanuel VadotunevaluatedProperties: false
73*8ccc0d23SEmmanuel Vadot
74*8ccc0d23SEmmanuel Vadotexamples:
75*8ccc0d23SEmmanuel Vadot  - |
76*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/clock/rockchip,rk3576-cru.h>
77*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/reset/rockchip,rk3576-cru.h>
78*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
79*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/power/rockchip,rk3576-power.h>
80*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/pinctrl/rockchip.h>
81*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
82*8ccc0d23SEmmanuel Vadot
83*8ccc0d23SEmmanuel Vadot    soc {
84*8ccc0d23SEmmanuel Vadot        #address-cells = <2>;
85*8ccc0d23SEmmanuel Vadot        #size-cells = <2>;
86*8ccc0d23SEmmanuel Vadot
87*8ccc0d23SEmmanuel Vadot        ufshc: ufshc@2a2d0000 {
88*8ccc0d23SEmmanuel Vadot            compatible = "rockchip,rk3576-ufshc";
89*8ccc0d23SEmmanuel Vadot            reg = <0x0 0x2a2d0000 0x0 0x10000>,
90*8ccc0d23SEmmanuel Vadot                  <0x0 0x2b040000 0x0 0x10000>,
91*8ccc0d23SEmmanuel Vadot                  <0x0 0x2601f000 0x0 0x1000>,
92*8ccc0d23SEmmanuel Vadot                  <0x0 0x2603c000 0x0 0x1000>,
93*8ccc0d23SEmmanuel Vadot                  <0x0 0x2a2e0000 0x0 0x10000>;
94*8ccc0d23SEmmanuel Vadot            reg-names = "hci", "mphy", "hci_grf", "mphy_grf", "hci_apb";
95*8ccc0d23SEmmanuel Vadot            clocks = <&cru ACLK_UFS_SYS>, <&cru PCLK_USB_ROOT>, <&cru PCLK_MPHY>,
96*8ccc0d23SEmmanuel Vadot                     <&cru CLK_REF_UFS_CLKOUT>;
97*8ccc0d23SEmmanuel Vadot            clock-names = "core", "pclk", "pclk_mphy", "ref_out";
98*8ccc0d23SEmmanuel Vadot            interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
99*8ccc0d23SEmmanuel Vadot            power-domains = <&power RK3576_PD_USB>;
100*8ccc0d23SEmmanuel Vadot            resets = <&cru SRST_A_UFS_BIU>, <&cru SRST_A_UFS_SYS>, <&cru SRST_A_UFS>,
101*8ccc0d23SEmmanuel Vadot                     <&cru SRST_P_UFS_GRF>;
102*8ccc0d23SEmmanuel Vadot            reset-names = "biu", "sys", "ufs", "grf";
103*8ccc0d23SEmmanuel Vadot            reset-gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>;
104*8ccc0d23SEmmanuel Vadot        };
105*8ccc0d23SEmmanuel Vadot    };
106