Linux 4.1.18
[linux/fpc-iii.git] / Documentation / devicetree / bindings / usb / samsung-usbphy.txt
blob33fd3543f3f84e55cd9b5d380caea5805cccfb43
1 SAMSUNG USB-PHY controllers
3 ** Samsung's usb 2.0 phy transceiver
5 The Samsung's usb 2.0 phy transceiver is used for controlling
6 usb 2.0 phy for s3c-hsotg as well as ehci-s5p and ohci-exynos
7 usb controllers across Samsung SOCs.
8 TODO: Adding the PHY binding with controller(s) according to the under
9 development generic PHY driver.
11 Required properties:
13 Exynos4210:
14 - compatible : should be "samsung,exynos4210-usb2phy"
15 - reg : base physical address of the phy registers and length of memory mapped
16         region.
17 - clocks: Clock IDs array as required by the controller.
18 - clock-names: names of clock correseponding IDs clock property as requested
19                by the controller driver.
21 Exynos5250:
22 - compatible : should be "samsung,exynos5250-usb2phy"
23 - reg : base physical address of the phy registers and length of memory mapped
24         region.
26 Optional properties:
27 - #address-cells: should be '1' when usbphy node has a child node with 'reg'
28                   property.
29 - #size-cells: should be '1' when usbphy node has a child node with 'reg'
30                property.
31 - ranges: allows valid translation between child's address space and parent's
32           address space.
34 - The child node 'usbphy-sys' to the node 'usbphy' is for the system controller
35   interface for usb-phy. It should provide the following information required by
36   usb-phy controller to control phy.
37   - reg : base physical address of PHY_CONTROL registers.
38           The size of this register is the total sum of size of all PHY_CONTROL
39           registers that the SoC has. For example, the size will be
40           '0x4' in case we have only one PHY_CONTROL register (e.g.
41           OTHERS register in S3C64XX or USB_PHY_CONTROL register in S5PV210)
42           and, '0x8' in case we have two PHY_CONTROL registers (e.g.
43           USBDEVICE_PHY_CONTROL and USBHOST_PHY_CONTROL registers in exynos4x).
44           and so on.
46 Example:
47  - Exynos4210
49         usbphy@125B0000 {
50                 #address-cells = <1>;
51                 #size-cells = <1>;
52                 compatible = "samsung,exynos4210-usb2phy";
53                 reg = <0x125B0000 0x100>;
54                 ranges;
56                 clocks = <&clock 2>, <&clock 305>;
57                 clock-names = "xusbxti", "otg";
59                 usbphy-sys {
60                         /* USB device and host PHY_CONTROL registers */
61                         reg = <0x10020704 0x8>;
62                 };
63         };
66 ** Samsung's usb 3.0 phy transceiver
68 Starting exynso5250, Samsung's SoC have usb 3.0 phy transceiver
69 which is used for controlling usb 3.0 phy for dwc3-exynos usb 3.0
70 controllers across Samsung SOCs.
72 Required properties:
74 Exynos5250:
75 - compatible : should be "samsung,exynos5250-usb3phy"
76 - reg : base physical address of the phy registers and length of memory mapped
77         region.
78 - clocks: Clock IDs array as required by the controller.
79 - clock-names: names of clocks correseponding to IDs in the clock property
80                as requested by the controller driver.
82 Optional properties:
83 - #address-cells: should be '1' when usbphy node has a child node with 'reg'
84                   property.
85 - #size-cells: should be '1' when usbphy node has a child node with 'reg'
86                property.
87 - ranges: allows valid translation between child's address space and parent's
88           address space.
90 - The child node 'usbphy-sys' to the node 'usbphy' is for the system controller
91   interface for usb-phy. It should provide the following information required by
92   usb-phy controller to control phy.
93   - reg : base physical address of PHY_CONTROL registers.
94           The size of this register is the total sum of size of all PHY_CONTROL
95           registers that the SoC has. For example, the size will be
96           '0x4' in case we have only one PHY_CONTROL register (e.g.
97           OTHERS register in S3C64XX or USB_PHY_CONTROL register in S5PV210)
98           and, '0x8' in case we have two PHY_CONTROL registers (e.g.
99           USBDEVICE_PHY_CONTROL and USBHOST_PHY_CONTROL registers in exynos4x).
100           and so on.
102 Example:
103         usbphy@12100000 {
104                 compatible = "samsung,exynos5250-usb3phy";
105                 reg = <0x12100000 0x100>;
106                 #address-cells = <1>;
107                 #size-cells = <1>;
108                 ranges;
110                 clocks = <&clock 1>, <&clock 286>;
111                 clock-names = "ext_xtal", "usbdrd30";
113                 usbphy-sys {
114                         /* USB device and host PHY_CONTROL registers */
115                         reg = <0x10040704 0x8>;
116                 };
117         };