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