1*4882a593SmuzhiyunSamsung S5P/Exynos SoC series MIPI CSIS/DSIM DPHY 2*4882a593Smuzhiyun------------------------------------------------- 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunRequired properties: 5*4882a593Smuzhiyun- compatible : should be one of the listed compatibles: 6*4882a593Smuzhiyun - "samsung,s5pv210-mipi-video-phy" 7*4882a593Smuzhiyun - "samsung,exynos5420-mipi-video-phy" 8*4882a593Smuzhiyun - "samsung,exynos5433-mipi-video-phy" 9*4882a593Smuzhiyun- #phy-cells : from the generic phy bindings, must be 1; 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunIn case of s5pv210 and exynos5420 compatible PHYs: 12*4882a593Smuzhiyun- syscon - phandle to the PMU system controller 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunIn case of exynos5433 compatible PHY: 15*4882a593Smuzhiyun - samsung,pmu-syscon - phandle to the PMU system controller 16*4882a593Smuzhiyun - samsung,disp-sysreg - phandle to the DISP system registers controller 17*4882a593Smuzhiyun - samsung,cam0-sysreg - phandle to the CAM0 system registers controller 18*4882a593Smuzhiyun - samsung,cam1-sysreg - phandle to the CAM1 system registers controller 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunFor "samsung,s5pv210-mipi-video-phy" compatible PHYs the second cell in 21*4882a593Smuzhiyunthe PHY specifier identifies the PHY and its meaning is as follows: 22*4882a593Smuzhiyun 0 - MIPI CSIS 0, 23*4882a593Smuzhiyun 1 - MIPI DSIM 0, 24*4882a593Smuzhiyun 2 - MIPI CSIS 1, 25*4882a593Smuzhiyun 3 - MIPI DSIM 1. 26*4882a593Smuzhiyun"samsung,exynos5420-mipi-video-phy" and "samsung,exynos5433-mipi-video-phy" 27*4882a593Smuzhiyunsupports additional fifth PHY: 28*4882a593Smuzhiyun 4 - MIPI CSIS 2. 29*4882a593Smuzhiyun 30*4882a593SmuzhiyunSamsung Exynos SoC series Display Port PHY 31*4882a593Smuzhiyun------------------------------------------------- 32*4882a593Smuzhiyun 33*4882a593SmuzhiyunRequired properties: 34*4882a593Smuzhiyun- compatible : should be one of the following supported values: 35*4882a593Smuzhiyun - "samsung,exynos5250-dp-video-phy" 36*4882a593Smuzhiyun - "samsung,exynos5420-dp-video-phy" 37*4882a593Smuzhiyun- samsung,pmu-syscon: phandle for PMU system controller interface, used to 38*4882a593Smuzhiyun control pmu registers for power isolation. 39*4882a593Smuzhiyun- #phy-cells : from the generic PHY bindings, must be 0; 40*4882a593Smuzhiyun 41*4882a593SmuzhiyunSamsung S5P/Exynos SoC series USB PHY 42*4882a593Smuzhiyun------------------------------------------------- 43*4882a593Smuzhiyun 44*4882a593SmuzhiyunRequired properties: 45*4882a593Smuzhiyun- compatible : should be one of the listed compatibles: 46*4882a593Smuzhiyun - "samsung,exynos3250-usb2-phy" 47*4882a593Smuzhiyun - "samsung,exynos4210-usb2-phy" 48*4882a593Smuzhiyun - "samsung,exynos4x12-usb2-phy" 49*4882a593Smuzhiyun - "samsung,exynos5250-usb2-phy" 50*4882a593Smuzhiyun - "samsung,s5pv210-usb2-phy" 51*4882a593Smuzhiyun- reg : a list of registers used by phy driver 52*4882a593Smuzhiyun - first and obligatory is the location of phy modules registers 53*4882a593Smuzhiyun- samsung,sysreg-phandle - handle to syscon used to control the system registers 54*4882a593Smuzhiyun- samsung,pmureg-phandle - handle to syscon used to control PMU registers 55*4882a593Smuzhiyun- #phy-cells : from the generic phy bindings, must be 1; 56*4882a593Smuzhiyun- clocks and clock-names: 57*4882a593Smuzhiyun - the "phy" clock is required by the phy module, used as a gate 58*4882a593Smuzhiyun - the "ref" clock is used to get the rate of the clock provided to the 59*4882a593Smuzhiyun PHY module 60*4882a593Smuzhiyun 61*4882a593SmuzhiyunOptional properties: 62*4882a593Smuzhiyun- vbus-supply: power-supply phandle for vbus power source 63*4882a593Smuzhiyun 64*4882a593SmuzhiyunThe first phandle argument in the PHY specifier identifies the PHY, its 65*4882a593Smuzhiyunmeaning is compatible dependent. For the currently supported SoCs (Exynos 4210 66*4882a593Smuzhiyunand Exynos 4212) it is as follows: 67*4882a593Smuzhiyun 0 - USB device ("device"), 68*4882a593Smuzhiyun 1 - USB host ("host"), 69*4882a593Smuzhiyun 2 - HSIC0 ("hsic0"), 70*4882a593Smuzhiyun 3 - HSIC1 ("hsic1"), 71*4882a593SmuzhiyunExynos3250 has only USB device phy available as phy 0. 72*4882a593Smuzhiyun 73*4882a593SmuzhiyunExynos 4210 and Exynos 4212 use mode switching and require that mode switch 74*4882a593Smuzhiyunregister is supplied. 75*4882a593Smuzhiyun 76*4882a593SmuzhiyunExample: 77*4882a593Smuzhiyun 78*4882a593SmuzhiyunFor Exynos 4412 (compatible with Exynos 4212): 79*4882a593Smuzhiyun 80*4882a593Smuzhiyunusbphy: phy@125b0000 { 81*4882a593Smuzhiyun compatible = "samsung,exynos4x12-usb2-phy"; 82*4882a593Smuzhiyun reg = <0x125b0000 0x100>; 83*4882a593Smuzhiyun clocks = <&clock 305>, <&clock 2>; 84*4882a593Smuzhiyun clock-names = "phy", "ref"; 85*4882a593Smuzhiyun #phy-cells = <1>; 86*4882a593Smuzhiyun samsung,sysreg-phandle = <&sys_reg>; 87*4882a593Smuzhiyun samsung,pmureg-phandle = <&pmu_reg>; 88*4882a593Smuzhiyun}; 89*4882a593Smuzhiyun 90*4882a593SmuzhiyunThen the PHY can be used in other nodes such as: 91*4882a593Smuzhiyun 92*4882a593Smuzhiyunphy-consumer@12340000 { 93*4882a593Smuzhiyun phys = <&usbphy 2>; 94*4882a593Smuzhiyun phy-names = "phy"; 95*4882a593Smuzhiyun}; 96*4882a593Smuzhiyun 97*4882a593SmuzhiyunRefer to DT bindings documentation of particular PHY consumer devices for more 98*4882a593Smuzhiyuninformation about required PHYs and the way of specification. 99*4882a593Smuzhiyun 100*4882a593SmuzhiyunSamsung SATA PHY Controller 101*4882a593Smuzhiyun--------------------------- 102*4882a593Smuzhiyun 103*4882a593SmuzhiyunSATA PHY nodes are defined to describe on-chip SATA Physical layer controllers. 104*4882a593SmuzhiyunEach SATA PHY controller should have its own node. 105*4882a593Smuzhiyun 106*4882a593SmuzhiyunRequired properties: 107*4882a593Smuzhiyun- compatible : compatible list, contains "samsung,exynos5250-sata-phy" 108*4882a593Smuzhiyun- reg : offset and length of the SATA PHY register set; 109*4882a593Smuzhiyun- #phy-cells : must be zero 110*4882a593Smuzhiyun- clocks : must be exactly one entry 111*4882a593Smuzhiyun- clock-names : must be "sata_phyctrl" 112*4882a593Smuzhiyun- samsung,exynos-sataphy-i2c-phandle : a phandle to the I2C device, no arguments 113*4882a593Smuzhiyun- samsung,syscon-phandle : a phandle to the PMU system controller, no arguments 114*4882a593Smuzhiyun 115*4882a593SmuzhiyunExample: 116*4882a593Smuzhiyun sata_phy: sata-phy@12170000 { 117*4882a593Smuzhiyun compatible = "samsung,exynos5250-sata-phy"; 118*4882a593Smuzhiyun reg = <0x12170000 0x1ff>; 119*4882a593Smuzhiyun clocks = <&clock 287>; 120*4882a593Smuzhiyun clock-names = "sata_phyctrl"; 121*4882a593Smuzhiyun #phy-cells = <0>; 122*4882a593Smuzhiyun samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>; 123*4882a593Smuzhiyun samsung,syscon-phandle = <&pmu_syscon>; 124*4882a593Smuzhiyun }; 125*4882a593Smuzhiyun 126*4882a593SmuzhiyunDevice-Tree bindings for sataphy i2c client driver 127*4882a593Smuzhiyun-------------------------------------------------- 128*4882a593Smuzhiyun 129*4882a593SmuzhiyunRequired properties: 130*4882a593Smuzhiyuncompatible: Should be "samsung,exynos-sataphy-i2c" 131*4882a593Smuzhiyun- reg: I2C address of the sataphy i2c device. 132*4882a593Smuzhiyun 133*4882a593SmuzhiyunExample: 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun sata_phy_i2c:sata-phy@38 { 136*4882a593Smuzhiyun compatible = "samsung,exynos-sataphy-i2c"; 137*4882a593Smuzhiyun reg = <0x38>; 138*4882a593Smuzhiyun }; 139*4882a593Smuzhiyun 140*4882a593SmuzhiyunSamsung Exynos5 SoC series USB DRD PHY controller 141*4882a593Smuzhiyun-------------------------------------------------- 142*4882a593Smuzhiyun 143*4882a593SmuzhiyunRequired properties: 144*4882a593Smuzhiyun- compatible : Should be set to one of the following supported values: 145*4882a593Smuzhiyun - "samsung,exynos5250-usbdrd-phy" - for exynos5250 SoC, 146*4882a593Smuzhiyun - "samsung,exynos5420-usbdrd-phy" - for exynos5420 SoC. 147*4882a593Smuzhiyun - "samsung,exynos5433-usbdrd-phy" - for exynos5433 SoC. 148*4882a593Smuzhiyun - "samsung,exynos7-usbdrd-phy" - for exynos7 SoC. 149*4882a593Smuzhiyun- reg : Register offset and length of USB DRD PHY register set; 150*4882a593Smuzhiyun- clocks: Clock IDs array as required by the controller 151*4882a593Smuzhiyun- clock-names: names of clocks correseponding to IDs in the clock property; 152*4882a593Smuzhiyun Required clocks: 153*4882a593Smuzhiyun - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock), 154*4882a593Smuzhiyun used for register access. 155*4882a593Smuzhiyun - ref: PHY's reference clock (usually crystal clock), used for 156*4882a593Smuzhiyun PHY operations, associated by phy name. It is used to 157*4882a593Smuzhiyun determine bit values for clock settings register. 158*4882a593Smuzhiyun For Exynos5420 this is given as 'sclk_usbphy30' in CMU. 159*4882a593Smuzhiyun - optional clocks: Exynos5433 & Exynos7 SoC has now following additional 160*4882a593Smuzhiyun gate clocks available: 161*4882a593Smuzhiyun - phy_pipe: for PIPE3 phy 162*4882a593Smuzhiyun - phy_utmi: for UTMI+ phy 163*4882a593Smuzhiyun - itp: for ITP generation 164*4882a593Smuzhiyun- samsung,pmu-syscon: phandle for PMU system controller interface, used to 165*4882a593Smuzhiyun control pmu registers for power isolation. 166*4882a593Smuzhiyun- #phy-cells : from the generic PHY bindings, must be 1; 167*4882a593Smuzhiyun 168*4882a593SmuzhiyunFor "samsung,exynos5250-usbdrd-phy" and "samsung,exynos5420-usbdrd-phy" 169*4882a593Smuzhiyuncompatible PHYs, the second cell in the PHY specifier identifies the 170*4882a593SmuzhiyunPHY id, which is interpreted as follows: 171*4882a593Smuzhiyun 0 - UTMI+ type phy, 172*4882a593Smuzhiyun 1 - PIPE3 type phy, 173*4882a593Smuzhiyun 174*4882a593SmuzhiyunExample: 175*4882a593Smuzhiyun usbdrd_phy: usbphy@12100000 { 176*4882a593Smuzhiyun compatible = "samsung,exynos5250-usbdrd-phy"; 177*4882a593Smuzhiyun reg = <0x12100000 0x100>; 178*4882a593Smuzhiyun clocks = <&clock 286>, <&clock 1>; 179*4882a593Smuzhiyun clock-names = "phy", "ref"; 180*4882a593Smuzhiyun samsung,pmu-syscon = <&pmu_system_controller>; 181*4882a593Smuzhiyun #phy-cells = <1>; 182*4882a593Smuzhiyun }; 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun- aliases: For SoCs like Exynos5420 having multiple USB 3.0 DRD PHY controllers, 185*4882a593Smuzhiyun 'usbdrd_phy' nodes should have numbered alias in the aliases node, 186*4882a593Smuzhiyun in the form of usbdrdphyN, N = 0, 1... (depending on number of 187*4882a593Smuzhiyun controllers). 188*4882a593SmuzhiyunExample: 189*4882a593Smuzhiyun aliases { 190*4882a593Smuzhiyun usbdrdphy0 = &usb3_phy0; 191*4882a593Smuzhiyun usbdrdphy1 = &usb3_phy1; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun 194*4882a593SmuzhiyunSamsung Exynos SoC series PCIe PHY controller 195*4882a593Smuzhiyun-------------------------------------------------- 196*4882a593SmuzhiyunRequired properties: 197*4882a593Smuzhiyun- compatible : Should be set to "samsung,exynos5440-pcie-phy" 198*4882a593Smuzhiyun- #phy-cells : Must be zero 199*4882a593Smuzhiyun- reg : a register used by phy driver. 200*4882a593Smuzhiyun - First is for phy register, second is for block register. 201*4882a593Smuzhiyun- reg-names : Must be set to "phy" and "block". 202*4882a593Smuzhiyun 203*4882a593SmuzhiyunExample: 204*4882a593Smuzhiyun pcie_phy0: pcie-phy@270000 { 205*4882a593Smuzhiyun #phy-cells = <0>; 206*4882a593Smuzhiyun compatible = "samsung,exynos5440-pcie-phy"; 207*4882a593Smuzhiyun reg = <0x270000 0x1000>, <0x271000 0x40>; 208*4882a593Smuzhiyun reg-names = "phy", "block"; 209*4882a593Smuzhiyun }; 210