18c2ecf20Sopenharmony_ciSamsung S5P/Exynos SoC series MIPI CSIS/DSIM DPHY 28c2ecf20Sopenharmony_ci------------------------------------------------- 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciRequired properties: 58c2ecf20Sopenharmony_ci- compatible : should be one of the listed compatibles: 68c2ecf20Sopenharmony_ci - "samsung,s5pv210-mipi-video-phy" 78c2ecf20Sopenharmony_ci - "samsung,exynos5420-mipi-video-phy" 88c2ecf20Sopenharmony_ci - "samsung,exynos5433-mipi-video-phy" 98c2ecf20Sopenharmony_ci- #phy-cells : from the generic phy bindings, must be 1; 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ciIn case of s5pv210 and exynos5420 compatible PHYs: 128c2ecf20Sopenharmony_ci- syscon - phandle to the PMU system controller 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciIn case of exynos5433 compatible PHY: 158c2ecf20Sopenharmony_ci - samsung,pmu-syscon - phandle to the PMU system controller 168c2ecf20Sopenharmony_ci - samsung,disp-sysreg - phandle to the DISP system registers controller 178c2ecf20Sopenharmony_ci - samsung,cam0-sysreg - phandle to the CAM0 system registers controller 188c2ecf20Sopenharmony_ci - samsung,cam1-sysreg - phandle to the CAM1 system registers controller 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ciFor "samsung,s5pv210-mipi-video-phy" compatible PHYs the second cell in 218c2ecf20Sopenharmony_cithe PHY specifier identifies the PHY and its meaning is as follows: 228c2ecf20Sopenharmony_ci 0 - MIPI CSIS 0, 238c2ecf20Sopenharmony_ci 1 - MIPI DSIM 0, 248c2ecf20Sopenharmony_ci 2 - MIPI CSIS 1, 258c2ecf20Sopenharmony_ci 3 - MIPI DSIM 1. 268c2ecf20Sopenharmony_ci"samsung,exynos5420-mipi-video-phy" and "samsung,exynos5433-mipi-video-phy" 278c2ecf20Sopenharmony_cisupports additional fifth PHY: 288c2ecf20Sopenharmony_ci 4 - MIPI CSIS 2. 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciSamsung Exynos SoC series Display Port PHY 318c2ecf20Sopenharmony_ci------------------------------------------------- 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ciRequired properties: 348c2ecf20Sopenharmony_ci- compatible : should be one of the following supported values: 358c2ecf20Sopenharmony_ci - "samsung,exynos5250-dp-video-phy" 368c2ecf20Sopenharmony_ci - "samsung,exynos5420-dp-video-phy" 378c2ecf20Sopenharmony_ci- samsung,pmu-syscon: phandle for PMU system controller interface, used to 388c2ecf20Sopenharmony_ci control pmu registers for power isolation. 398c2ecf20Sopenharmony_ci- #phy-cells : from the generic PHY bindings, must be 0; 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ciSamsung S5P/Exynos SoC series USB PHY 428c2ecf20Sopenharmony_ci------------------------------------------------- 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciRequired properties: 458c2ecf20Sopenharmony_ci- compatible : should be one of the listed compatibles: 468c2ecf20Sopenharmony_ci - "samsung,exynos3250-usb2-phy" 478c2ecf20Sopenharmony_ci - "samsung,exynos4210-usb2-phy" 488c2ecf20Sopenharmony_ci - "samsung,exynos4x12-usb2-phy" 498c2ecf20Sopenharmony_ci - "samsung,exynos5250-usb2-phy" 508c2ecf20Sopenharmony_ci - "samsung,s5pv210-usb2-phy" 518c2ecf20Sopenharmony_ci- reg : a list of registers used by phy driver 528c2ecf20Sopenharmony_ci - first and obligatory is the location of phy modules registers 538c2ecf20Sopenharmony_ci- samsung,sysreg-phandle - handle to syscon used to control the system registers 548c2ecf20Sopenharmony_ci- samsung,pmureg-phandle - handle to syscon used to control PMU registers 558c2ecf20Sopenharmony_ci- #phy-cells : from the generic phy bindings, must be 1; 568c2ecf20Sopenharmony_ci- clocks and clock-names: 578c2ecf20Sopenharmony_ci - the "phy" clock is required by the phy module, used as a gate 588c2ecf20Sopenharmony_ci - the "ref" clock is used to get the rate of the clock provided to the 598c2ecf20Sopenharmony_ci PHY module 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ciOptional properties: 628c2ecf20Sopenharmony_ci- vbus-supply: power-supply phandle for vbus power source 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ciThe first phandle argument in the PHY specifier identifies the PHY, its 658c2ecf20Sopenharmony_cimeaning is compatible dependent. For the currently supported SoCs (Exynos 4210 668c2ecf20Sopenharmony_ciand Exynos 4212) it is as follows: 678c2ecf20Sopenharmony_ci 0 - USB device ("device"), 688c2ecf20Sopenharmony_ci 1 - USB host ("host"), 698c2ecf20Sopenharmony_ci 2 - HSIC0 ("hsic0"), 708c2ecf20Sopenharmony_ci 3 - HSIC1 ("hsic1"), 718c2ecf20Sopenharmony_ciExynos3250 has only USB device phy available as phy 0. 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ciExynos 4210 and Exynos 4212 use mode switching and require that mode switch 748c2ecf20Sopenharmony_ciregister is supplied. 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciExample: 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ciFor Exynos 4412 (compatible with Exynos 4212): 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ciusbphy: phy@125b0000 { 818c2ecf20Sopenharmony_ci compatible = "samsung,exynos4x12-usb2-phy"; 828c2ecf20Sopenharmony_ci reg = <0x125b0000 0x100>; 838c2ecf20Sopenharmony_ci clocks = <&clock 305>, <&clock 2>; 848c2ecf20Sopenharmony_ci clock-names = "phy", "ref"; 858c2ecf20Sopenharmony_ci #phy-cells = <1>; 868c2ecf20Sopenharmony_ci samsung,sysreg-phandle = <&sys_reg>; 878c2ecf20Sopenharmony_ci samsung,pmureg-phandle = <&pmu_reg>; 888c2ecf20Sopenharmony_ci}; 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ciThen the PHY can be used in other nodes such as: 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ciphy-consumer@12340000 { 938c2ecf20Sopenharmony_ci phys = <&usbphy 2>; 948c2ecf20Sopenharmony_ci phy-names = "phy"; 958c2ecf20Sopenharmony_ci}; 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ciRefer to DT bindings documentation of particular PHY consumer devices for more 988c2ecf20Sopenharmony_ciinformation about required PHYs and the way of specification. 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ciSamsung SATA PHY Controller 1018c2ecf20Sopenharmony_ci--------------------------- 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ciSATA PHY nodes are defined to describe on-chip SATA Physical layer controllers. 1048c2ecf20Sopenharmony_ciEach SATA PHY controller should have its own node. 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ciRequired properties: 1078c2ecf20Sopenharmony_ci- compatible : compatible list, contains "samsung,exynos5250-sata-phy" 1088c2ecf20Sopenharmony_ci- reg : offset and length of the SATA PHY register set; 1098c2ecf20Sopenharmony_ci- #phy-cells : must be zero 1108c2ecf20Sopenharmony_ci- clocks : must be exactly one entry 1118c2ecf20Sopenharmony_ci- clock-names : must be "sata_phyctrl" 1128c2ecf20Sopenharmony_ci- samsung,exynos-sataphy-i2c-phandle : a phandle to the I2C device, no arguments 1138c2ecf20Sopenharmony_ci- samsung,syscon-phandle : a phandle to the PMU system controller, no arguments 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ciExample: 1168c2ecf20Sopenharmony_ci sata_phy: sata-phy@12170000 { 1178c2ecf20Sopenharmony_ci compatible = "samsung,exynos5250-sata-phy"; 1188c2ecf20Sopenharmony_ci reg = <0x12170000 0x1ff>; 1198c2ecf20Sopenharmony_ci clocks = <&clock 287>; 1208c2ecf20Sopenharmony_ci clock-names = "sata_phyctrl"; 1218c2ecf20Sopenharmony_ci #phy-cells = <0>; 1228c2ecf20Sopenharmony_ci samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>; 1238c2ecf20Sopenharmony_ci samsung,syscon-phandle = <&pmu_syscon>; 1248c2ecf20Sopenharmony_ci }; 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ciDevice-Tree bindings for sataphy i2c client driver 1278c2ecf20Sopenharmony_ci-------------------------------------------------- 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ciRequired properties: 1308c2ecf20Sopenharmony_cicompatible: Should be "samsung,exynos-sataphy-i2c" 1318c2ecf20Sopenharmony_ci- reg: I2C address of the sataphy i2c device. 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ciExample: 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci sata_phy_i2c:sata-phy@38 { 1368c2ecf20Sopenharmony_ci compatible = "samsung,exynos-sataphy-i2c"; 1378c2ecf20Sopenharmony_ci reg = <0x38>; 1388c2ecf20Sopenharmony_ci }; 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ciSamsung Exynos5 SoC series USB DRD PHY controller 1418c2ecf20Sopenharmony_ci-------------------------------------------------- 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ciRequired properties: 1448c2ecf20Sopenharmony_ci- compatible : Should be set to one of the following supported values: 1458c2ecf20Sopenharmony_ci - "samsung,exynos5250-usbdrd-phy" - for exynos5250 SoC, 1468c2ecf20Sopenharmony_ci - "samsung,exynos5420-usbdrd-phy" - for exynos5420 SoC. 1478c2ecf20Sopenharmony_ci - "samsung,exynos5433-usbdrd-phy" - for exynos5433 SoC. 1488c2ecf20Sopenharmony_ci - "samsung,exynos7-usbdrd-phy" - for exynos7 SoC. 1498c2ecf20Sopenharmony_ci- reg : Register offset and length of USB DRD PHY register set; 1508c2ecf20Sopenharmony_ci- clocks: Clock IDs array as required by the controller 1518c2ecf20Sopenharmony_ci- clock-names: names of clocks correseponding to IDs in the clock property; 1528c2ecf20Sopenharmony_ci Required clocks: 1538c2ecf20Sopenharmony_ci - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock), 1548c2ecf20Sopenharmony_ci used for register access. 1558c2ecf20Sopenharmony_ci - ref: PHY's reference clock (usually crystal clock), used for 1568c2ecf20Sopenharmony_ci PHY operations, associated by phy name. It is used to 1578c2ecf20Sopenharmony_ci determine bit values for clock settings register. 1588c2ecf20Sopenharmony_ci For Exynos5420 this is given as 'sclk_usbphy30' in CMU. 1598c2ecf20Sopenharmony_ci - optional clocks: Exynos5433 & Exynos7 SoC has now following additional 1608c2ecf20Sopenharmony_ci gate clocks available: 1618c2ecf20Sopenharmony_ci - phy_pipe: for PIPE3 phy 1628c2ecf20Sopenharmony_ci - phy_utmi: for UTMI+ phy 1638c2ecf20Sopenharmony_ci - itp: for ITP generation 1648c2ecf20Sopenharmony_ci- samsung,pmu-syscon: phandle for PMU system controller interface, used to 1658c2ecf20Sopenharmony_ci control pmu registers for power isolation. 1668c2ecf20Sopenharmony_ci- #phy-cells : from the generic PHY bindings, must be 1; 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ciFor "samsung,exynos5250-usbdrd-phy" and "samsung,exynos5420-usbdrd-phy" 1698c2ecf20Sopenharmony_cicompatible PHYs, the second cell in the PHY specifier identifies the 1708c2ecf20Sopenharmony_ciPHY id, which is interpreted as follows: 1718c2ecf20Sopenharmony_ci 0 - UTMI+ type phy, 1728c2ecf20Sopenharmony_ci 1 - PIPE3 type phy, 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ciExample: 1758c2ecf20Sopenharmony_ci usbdrd_phy: usbphy@12100000 { 1768c2ecf20Sopenharmony_ci compatible = "samsung,exynos5250-usbdrd-phy"; 1778c2ecf20Sopenharmony_ci reg = <0x12100000 0x100>; 1788c2ecf20Sopenharmony_ci clocks = <&clock 286>, <&clock 1>; 1798c2ecf20Sopenharmony_ci clock-names = "phy", "ref"; 1808c2ecf20Sopenharmony_ci samsung,pmu-syscon = <&pmu_system_controller>; 1818c2ecf20Sopenharmony_ci #phy-cells = <1>; 1828c2ecf20Sopenharmony_ci }; 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci- aliases: For SoCs like Exynos5420 having multiple USB 3.0 DRD PHY controllers, 1858c2ecf20Sopenharmony_ci 'usbdrd_phy' nodes should have numbered alias in the aliases node, 1868c2ecf20Sopenharmony_ci in the form of usbdrdphyN, N = 0, 1... (depending on number of 1878c2ecf20Sopenharmony_ci controllers). 1888c2ecf20Sopenharmony_ciExample: 1898c2ecf20Sopenharmony_ci aliases { 1908c2ecf20Sopenharmony_ci usbdrdphy0 = &usb3_phy0; 1918c2ecf20Sopenharmony_ci usbdrdphy1 = &usb3_phy1; 1928c2ecf20Sopenharmony_ci }; 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_ciSamsung Exynos SoC series PCIe PHY controller 1958c2ecf20Sopenharmony_ci-------------------------------------------------- 1968c2ecf20Sopenharmony_ciRequired properties: 1978c2ecf20Sopenharmony_ci- compatible : Should be set to "samsung,exynos5440-pcie-phy" 1988c2ecf20Sopenharmony_ci- #phy-cells : Must be zero 1998c2ecf20Sopenharmony_ci- reg : a register used by phy driver. 2008c2ecf20Sopenharmony_ci - First is for phy register, second is for block register. 2018c2ecf20Sopenharmony_ci- reg-names : Must be set to "phy" and "block". 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ciExample: 2048c2ecf20Sopenharmony_ci pcie_phy0: pcie-phy@270000 { 2058c2ecf20Sopenharmony_ci #phy-cells = <0>; 2068c2ecf20Sopenharmony_ci compatible = "samsung,exynos5440-pcie-phy"; 2078c2ecf20Sopenharmony_ci reg = <0x270000 0x1000>, <0x271000 0x40>; 2088c2ecf20Sopenharmony_ci reg-names = "phy", "block"; 2098c2ecf20Sopenharmony_ci }; 210