1*c66ec88fSEmmanuel Vadot* Hisilicon Universal Flash Storage (UFS) Host Controller 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotUFS nodes are defined to describe on-chip UFS hardware macro. 4*c66ec88fSEmmanuel VadotEach UFS Host Controller should have its own node. 5*c66ec88fSEmmanuel Vadot 6*c66ec88fSEmmanuel VadotRequired properties: 7*c66ec88fSEmmanuel Vadot- compatible : compatible list, contains one of the following - 8*c66ec88fSEmmanuel Vadot "hisilicon,hi3660-ufs", "jedec,ufs-1.1" for hisi ufs 9*c66ec88fSEmmanuel Vadot host controller present on Hi3660 chipset. 10*c66ec88fSEmmanuel Vadot "hisilicon,hi3670-ufs", "jedec,ufs-2.1" for hisi ufs 11*c66ec88fSEmmanuel Vadot host controller present on Hi3670 chipset. 12*c66ec88fSEmmanuel Vadot- reg : should contain UFS register address space & UFS SYS CTRL register address, 13*c66ec88fSEmmanuel Vadot- interrupts : interrupt number 14*c66ec88fSEmmanuel Vadot- clocks : List of phandle and clock specifier pairs 15*c66ec88fSEmmanuel Vadot- clock-names : List of clock input name strings sorted in the same 16*c66ec88fSEmmanuel Vadot order as the clocks property. "ref_clk", "phy_clk" is optional 17*c66ec88fSEmmanuel Vadot- freq-table-hz : Array of <min max> operating frequencies stored in the same 18*c66ec88fSEmmanuel Vadot order as the clocks property. If this property is not 19*c66ec88fSEmmanuel Vadot defined or a value in the array is "0" then it is assumed 20*c66ec88fSEmmanuel Vadot that the frequency is set by the parent clock or a 21*c66ec88fSEmmanuel Vadot fixed rate clock source. 22*c66ec88fSEmmanuel Vadot- resets : describe reset node register 23*c66ec88fSEmmanuel Vadot- reset-names : reset node register, the "rst" corresponds to reset the whole UFS IP. 24*c66ec88fSEmmanuel Vadot 25*c66ec88fSEmmanuel VadotExample: 26*c66ec88fSEmmanuel Vadot 27*c66ec88fSEmmanuel Vadot ufs: ufs@ff3b0000 { 28*c66ec88fSEmmanuel Vadot compatible = "hisilicon,hi3660-ufs", "jedec,ufs-1.1"; 29*c66ec88fSEmmanuel Vadot /* 0: HCI standard */ 30*c66ec88fSEmmanuel Vadot /* 1: UFS SYS CTRL */ 31*c66ec88fSEmmanuel Vadot reg = <0x0 0xff3b0000 0x0 0x1000>, 32*c66ec88fSEmmanuel Vadot <0x0 0xff3b1000 0x0 0x1000>; 33*c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 34*c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>; 35*c66ec88fSEmmanuel Vadot clocks = <&crg_ctrl HI3660_CLK_GATE_UFSIO_REF>, 36*c66ec88fSEmmanuel Vadot <&crg_ctrl HI3660_CLK_GATE_UFSPHY_CFG>; 37*c66ec88fSEmmanuel Vadot clock-names = "ref_clk", "phy_clk"; 38*c66ec88fSEmmanuel Vadot freq-table-hz = <0 0>, <0 0>; 39*c66ec88fSEmmanuel Vadot /* offset: 0x84; bit: 12 */ 40*c66ec88fSEmmanuel Vadot resets = <&crg_rst 0x84 12>; 41*c66ec88fSEmmanuel Vadot reset-names = "rst"; 42*c66ec88fSEmmanuel Vadot }; 43