Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-25 Thread Tushar Behera
On 04/14/2014 08:07 PM, Sylwester Nawrocki wrote:
 On 08/04/14 16:36, Vivek Gautam wrote:
 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {
  
  Refer to DT bindings documentation of particular PHY consumer devices for 
 more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 +- samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 +- samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock property;
 +   Required clocks:
 +- phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock),
 +   used for register access.
 +- ref: PHY's reference clock (usually crystal clock), associated by
 +   phy name, used to determine bit values for clock settings
 +   register.
 +Additional clock required for Exynos5420:
 +- usb30_sclk_100m: Additional special clock used for PHY operation
 +   depicted as 'sclk_usbphy30' in CMU of Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +  control pmu registers for power isolation.
 
 Why to append -phandle to the property's name ? If this is for PMU
 perhaps make it more explicit and name it: samsung,pmu-syscon or
 samsung,pmureg ?
 

There are already a couple of nodes (watchdog and sata) using
samsung,syscon-phandle. IMHO, we should keep only property string for
syscon node. Either we keep syscon-phandle here or change sata/watchdog
driver to use the modified property name.

-- 
Tushar Behera
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-25 Thread Vivek Gautam
Hi,


On Fri, Apr 25, 2014 at 1:27 PM, Tushar Behera tushar.beh...@linaro.org wrote:
 On 04/14/2014 08:07 PM, Sylwester Nawrocki wrote:
 On 08/04/14 16:36, Vivek Gautam wrote:
 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {

  Refer to DT bindings documentation of particular PHY consumer devices for 
 more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 +- samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 +- samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock property;
 +   Required clocks:
 +- phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock),
 +   used for register access.
 +- ref: PHY's reference clock (usually crystal clock), associated by
 +   phy name, used to determine bit values for clock settings
 +   register.
 +Additional clock required for Exynos5420:
 +- usb30_sclk_100m: Additional special clock used for PHY operation
 +   depicted as 'sclk_usbphy30' in CMU of Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +  control pmu registers for power isolation.

 Why to append -phandle to the property's name ? If this is for PMU
 perhaps make it more explicit and name it: samsung,pmu-syscon or
 samsung,pmureg ?


 There are already a couple of nodes (watchdog and sata) using
 samsung,syscon-phandle. IMHO, we should keep only property string for
 syscon node. Either we keep syscon-phandle here or change sata/watchdog
 driver to use the modified property name.

IMHO samsung,pmu-syscon make more sense rather than appending a
'-phandle' to the property name.
This is a 'phandle' and that is in fact understood, isn't it ?
We can change in the watchdog, sata drivers to use use the modified name.
I can send a patch for the same if we are OK with this, so that we
maintain the consistency in the device tree.


-- 
Best Regards
Vivek Gautam
Samsung RD Institute, Bangalore
India
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-21 Thread Jingoo Han
On Wednesday, April 16, 2014 11:49 PM, Vivek Gautam wrote:
 On Wed, Apr 16, 2014 at 7:14 PM, Tomasz Figa t.f...@samsung.com wrote:
  On 15.04.2014 08:09, Vivek Gautam wrote:
  On Thu, Apr 10, 2014 at 5:09 PM, Vivek Gautam wrote:
  On Wed, Apr 9, 2014 at 7:03 PM, Tomasz Figa t.f...@samsung.com wrote:
  On 09.04.2014 13:49, Vivek Gautam wrote:
 
  So, USB30_SCLK_100M is the SCLK that we are talking in the driver. I
  don't see any reference to XXTI in the USB 3.0 DRD controller chapter
  (in both Exynos5250 and 5420)
  In addition to this there's one more point to be noticed here.
  On Exynos5420 system, the sclk_usbphy300 (which is the sclk_usbphy30
  for USB DRD channel 0), is also the PICO phy clock, i.e. USB 2.0 phy
  clock.
  So we should add a similar clk_get() for this clock in the
  phy-exynos5250-usb2 driver too, to support Exynos5420.
 
 
  Is something clear from the above block diagram ? (although the
  diagram looks weird - space and tabs problem :-(  )
  Basically there's the clock USB30_SCLK_100M which is going into the
  USB 3.0 DRD PHY controller.
  And this is the only sclk mentioned in the block diagram for USB 3.0
  DRD controller in Exynos5420.
  Same is not there in the block diagram in Exynos5250 UM.
 
 
  From what I can see in the documentation, there are 4 USB 3.0 related clocks
  generated in CMU:
 
   - sclk_usbphy300,
   - sclk_usbphy301,
   - sclk_usbdrd300,
   - sclk_usbdrd301,
 
  They are all rated to max. 24 MHz and the recommended operating frequency is
  24 MHz, so it looks exactly like USB PHY reference, which is usually a 24
  MHz clock.
 
  To me, this looks like on Exynos5420 a separate special clock path is used
  instead of xusbxti as reference of USB 3.0 PHY and so the sclk should be
  simply passed as the ref clock.
 
 Ok, i will clear on this with the hardware engineer also once.
 May be Jingoo can help me with this.
 
 Jingoo,
 Can you please enquire about the clock path of usbphy30 reference
 clocks on Exynos5420.
 As mentioned by Tomasz above, we have sclk_usbphy300 and
 sclk_usbphy301 as the reference clocks for USB3.0 DRD phy. *Also*
 sclk_usbphy300 is used for Pico phy (which is the USb 2.0 phy used by
 ehci/ohci controller on Exynos5420).
 It will be of great help.

Hi Vevek, Tomasz

Long time no see.

I asked USB S/W engineer and USB H/W engineer.

There are two USB3.0 on Exynos5420; thus there are two sclks
such as 'sclk_usbphy300 and sclk_usbphy301'.

As Tomasz mentioned, 'sclk_usbphy300 and sclk_usbphy301' can
be used instead of 'xusbxti' as reference of USB 3.0 PHY.

However, on Exynos5420, ONLY 'sclk_usbphy300' can be used
for USB2.0 pico phy. (so, '301' CANNOT support USB2.0 pico phy.)

Best regards,
Jingoo Han

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-21 Thread Vivek Gautam
Hi Jingoo,


On Tue, Apr 22, 2014 at 7:48 AM, Jingoo Han jg1@samsung.com wrote:
 On Wednesday, April 16, 2014 11:49 PM, Vivek Gautam wrote:
 On Wed, Apr 16, 2014 at 7:14 PM, Tomasz Figa t.f...@samsung.com wrote:
  On 15.04.2014 08:09, Vivek Gautam wrote:
  On Thu, Apr 10, 2014 at 5:09 PM, Vivek Gautam wrote:
  On Wed, Apr 9, 2014 at 7:03 PM, Tomasz Figa t.f...@samsung.com wrote:
  On 09.04.2014 13:49, Vivek Gautam wrote:
 
  So, USB30_SCLK_100M is the SCLK that we are talking in the driver. I
  don't see any reference to XXTI in the USB 3.0 DRD controller chapter
  (in both Exynos5250 and 5420)
  In addition to this there's one more point to be noticed here.
  On Exynos5420 system, the sclk_usbphy300 (which is the sclk_usbphy30
  for USB DRD channel 0), is also the PICO phy clock, i.e. USB 2.0 phy
  clock.
  So we should add a similar clk_get() for this clock in the
  phy-exynos5250-usb2 driver too, to support Exynos5420.
 
 
  Is something clear from the above block diagram ? (although the
  diagram looks weird - space and tabs problem :-(  )
  Basically there's the clock USB30_SCLK_100M which is going into the
  USB 3.0 DRD PHY controller.
  And this is the only sclk mentioned in the block diagram for USB 3.0
  DRD controller in Exynos5420.
  Same is not there in the block diagram in Exynos5250 UM.
 
 
  From what I can see in the documentation, there are 4 USB 3.0 related 
  clocks
  generated in CMU:
 
   - sclk_usbphy300,
   - sclk_usbphy301,
   - sclk_usbdrd300,
   - sclk_usbdrd301,
 
  They are all rated to max. 24 MHz and the recommended operating frequency 
  is
  24 MHz, so it looks exactly like USB PHY reference, which is usually a 24
  MHz clock.
 
  To me, this looks like on Exynos5420 a separate special clock path is used
  instead of xusbxti as reference of USB 3.0 PHY and so the sclk should be
  simply passed as the ref clock.

 Ok, i will clear on this with the hardware engineer also once.
 May be Jingoo can help me with this.

 Jingoo,
 Can you please enquire about the clock path of usbphy30 reference
 clocks on Exynos5420.
 As mentioned by Tomasz above, we have sclk_usbphy300 and
 sclk_usbphy301 as the reference clocks for USB3.0 DRD phy. *Also*
 sclk_usbphy300 is used for Pico phy (which is the USb 2.0 phy used by
 ehci/ohci controller on Exynos5420).
 It will be of great help.

 Hi Vevek, Tomasz

 Long time no see.

 I asked USB S/W engineer and USB H/W engineer.

 There are two USB3.0 on Exynos5420; thus there are two sclks
 such as 'sclk_usbphy300 and sclk_usbphy301'.

 As Tomasz mentioned, 'sclk_usbphy300 and sclk_usbphy301' can
 be used instead of 'xusbxti' as reference of USB 3.0 PHY.

Thank you so much for getting this information.
I can re-spin the patch. :-)


 However, on Exynos5420, ONLY 'sclk_usbphy300' can be used
 for USB2.0 pico phy. (so, '301' CANNOT support USB2.0 pico phy.)

True, for USB 2.0 pico phy, only sclk_usbphy300 can be used.
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-16 Thread Tomasz Figa

Hi Vivek,

On 15.04.2014 08:09, Vivek Gautam wrote:

Hi Tomasz,


On Thu, Apr 10, 2014 at 5:09 PM, Vivek Gautam gautamvivek1...@gmail.com wrote:

On Wed, Apr 9, 2014 at 7:03 PM, Tomasz Figa t.f...@samsung.com wrote:

On 09.04.2014 13:49, Vivek Gautam wrote:


Hi,


On Wed, Apr 9, 2014 at 4:36 PM, Tomasz Figa t.f...@samsung.com wrote:


Hi Vivek,

Please see my comments inline.


On 08.04.2014 16:36, Vivek Gautam wrote:



Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
The new driver uses the generic PHY framework and will interact
with DWC3 controller present on Exynos5 series of SoCs.
Thereby, removing old phy-samsung-usb3 driver and related code
used untill now which was based on usb/phy framework.

Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
---
.../devicetree/bindings/phy/samsung-phy.txt|   42 ++
drivers/phy/Kconfig|   11 +
drivers/phy/Makefile   |1 +
drivers/phy/phy-exynos5-usbdrd.c   |  668

4 files changed, 722 insertions(+)
create mode 100644 drivers/phy/phy-exynos5-usbdrd.c




[snip]



+   Additional clock required for Exynos5420:
+   - usb30_sclk_100m: Additional special clock used for PHY
operation
+  depicted as 'sclk_usbphy30' in CMU of
Exynos5420.




Are you sure this isn't simply a gate for the ref clock, as it can be
found
on another SoC that is not upstream yet? I don't have documentation for
Exynos 5420 so I can't tell, but I'd like to ask you to recheck this.




 From what i can see in the manual :


sclk_usbphy30 is derived from OSCCLK.
It is coming from a MUX (default input line to this is OSCCLK)  and
then through a DIV
there's this gate.

{OSCCLK  + other sources} ---[MUX] --- [DIV] -- [GATE for
sclk_usbphy30]

the {rate of sclk_usbphy30} == OSCCLK

However the 'ref' clock that we have been using is the actual oscillator
clock.
And on SoC Exynos5250, we don't have any such gate (sclk_usbphy30).
So should this mean that ref clock and sclk_usbphy30 are still be
controlled by
two different gates ?



Is there maybe a diagram of PHY input clocks in the datasheet, like for USB
2.0 PHY in Exynos4210/4412/5250 datasheets in the chapter about USB2.0
Device? Something like:

  
 ||
 | ___|
XusbXTI |   Phy_fsel[2:0]|  ___  |
___[X]___|| __|_|___|\__|_|
   | |   _v___ |  _   ^ |   |/  | |
_   |  | || | |  | |  ___  | |
  ___|  | || | |  | | |   |_|_|
|___|   |  | X 0 ||_| PLL |__|_|_|CLK|_|_|
_   |  | |  | || |DIV|_|_|
   |___[X]   |  |_| 12   |_|480 | |___| | |
 |  MHz MHz |Digital| |
XusbXTO |   USB PHY|___| |
 ||




Below is the block diagram given for DRD controller.

___
||
|   |
|  | PHY   |  |
|  | controller |-|---
|  |__  | |   |
||
   |
| USB 3.0   |  V
|   DRD  |
---
|Controller  |  |
  |
||USB30_SCLK_100M| USB 3.0 DRD  |
|    |   ---
|   PHY |
| | Link cont. | |  |
  |
|  - |
  |   |
|___| |_|

Does this help ?

So, USB30_SCLK_100M is the SCLK that we are talking in the driver. I
don't see any reference to XXTI in the USB 3.0 DRD controller chapter
(in both Exynos5250 and 5420)
In addition to this there's one more point to be noticed here.
On Exynos5420 system, the sclk_usbphy300 (which is the sclk_usbphy30
for USB DRD channel 0), is also the PICO phy clock, i.e. USB 2.0 phy
clock.
So we should add a similar clk_get() for this clock in the
phy-exynos5250-usb2 driver too, to support Exynos5420.


Is something clear from the above block diagram ? (although the
diagram looks weird - space and tabs problem :-(  )
Basically there's the clock USB30_SCLK_100M which is going into the
USB 3.0 DRD PHY controller.
And this is the only sclk mentioned in the block diagram for USB 3.0
DRD controller in Exynos5420.
Same is not 

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-16 Thread Vivek Gautam
Hi,


On Wed, Apr 16, 2014 at 7:14 PM, Tomasz Figa t.f...@samsung.com wrote:
 Hi Vivek,


 On 15.04.2014 08:09, Vivek Gautam wrote:

 Hi Tomasz,


 On Thu, Apr 10, 2014 at 5:09 PM, Vivek Gautam gautamvivek1...@gmail.com
 wrote:

 On Wed, Apr 9, 2014 at 7:03 PM, Tomasz Figa t.f...@samsung.com wrote:

 On 09.04.2014 13:49, Vivek Gautam wrote:


 Hi,


 On Wed, Apr 9, 2014 at 4:36 PM, Tomasz Figa t.f...@samsung.com wrote:


 Hi Vivek,

 Please see my comments inline.


 On 08.04.2014 16:36, Vivek Gautam wrote:



 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
 .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
 drivers/phy/Kconfig|   11 +
 drivers/phy/Makefile   |1 +
 drivers/phy/phy-exynos5-usbdrd.c   |  668
 
 4 files changed, 722 insertions(+)
 create mode 100644 drivers/phy/phy-exynos5-usbdrd.c




 [snip]


 +   Additional clock required for Exynos5420:
 +   - usb30_sclk_100m: Additional special clock used for PHY
 operation
 +  depicted as 'sclk_usbphy30' in CMU of
 Exynos5420.




 Are you sure this isn't simply a gate for the ref clock, as it can be
 found
 on another SoC that is not upstream yet? I don't have documentation
 for
 Exynos 5420 so I can't tell, but I'd like to ask you to recheck this.



  From what i can see in the manual :


 sclk_usbphy30 is derived from OSCCLK.
 It is coming from a MUX (default input line to this is OSCCLK)  and
 then through a DIV
 there's this gate.

 {OSCCLK  + other sources} ---[MUX] --- [DIV] -- [GATE for
 sclk_usbphy30]

 the {rate of sclk_usbphy30} == OSCCLK

 However the 'ref' clock that we have been using is the actual
 oscillator
 clock.
 And on SoC Exynos5250, we don't have any such gate (sclk_usbphy30).
 So should this mean that ref clock and sclk_usbphy30 are still be
 controlled by
 two different gates ?


 Is there maybe a diagram of PHY input clocks in the datasheet, like for
 USB
 2.0 PHY in Exynos4210/4412/5250 datasheets in the chapter about USB2.0
 Device? Something like:

   
  ||
  | ___|
 XusbXTI |   Phy_fsel[2:0]|  ___  |
 ___[X]___|| __|_|___|\__|_|
| |   _v___ |  _   ^ |   |/  | |
 _   |  | || | |  | |  ___  | |
   ___|  | || | |  | | |   |_|_|
 |___|   |  | X 0 ||_| PLL |__|_|_|CLK|_|_|
 _   |  | |  | || |DIV|_|_|
|___[X]   |  |_| 12   |_|480 | |___| | |
  |  MHz MHz |Digital| |
 XusbXTO |   USB PHY|___| |
  ||



 Below is the block diagram given for DRD controller.

 ___
 ||
 |   |
 |  | PHY   |  |
 |  | controller
 |-|---
 |  |__  | |
 |
 ||
|
 | USB 3.0   |
 V
 |   DRD  |
 ---
 |Controller  |  |
   |
 ||USB30_SCLK_100M| USB 3.0 DRD  |
 |    |   ---
 |   PHY |
 | | Link cont. | |  |
   |
 |  - |
   |   |
 |___| |_|

 Does this help ?

 So, USB30_SCLK_100M is the SCLK that we are talking in the driver. I
 don't see any reference to XXTI in the USB 3.0 DRD controller chapter
 (in both Exynos5250 and 5420)
 In addition to this there's one more point to be noticed here.
 On Exynos5420 system, the sclk_usbphy300 (which is the sclk_usbphy30
 for USB DRD channel 0), is also the PICO phy clock, i.e. USB 2.0 phy
 clock.
 So we should add a similar clk_get() for this clock in the
 phy-exynos5250-usb2 driver too, to support Exynos5420.


 Is something clear from the above block diagram ? (although the
 diagram looks weird - space and tabs problem :-(  )
 Basically there's the clock USB30_SCLK_100M which is going into the
 USB 3.0 DRD PHY controller.
 And this is the only sclk 

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-15 Thread Kishon Vijay Abraham I

Hi,

On Monday 14 April 2014 07:19 PM, Tomasz Figa wrote:
 On 14.04.2014 15:40, Vivek Gautam wrote:
 On Mon, Apr 14, 2014 at 6:56 PM, Kishon Vijay Abraham I kis...@ti.com 
 wrote:


 On Monday 14 April 2014 06:50 PM, Vivek Gautam wrote:
 On Mon, Apr 14, 2014 at 6:29 PM, Kishon Vijay Abraham I kis...@ti.com 
 wrote:


 On Monday 14 April 2014 06:12 PM, Vivek Gautam wrote:
 Hi,


 On Mon, Apr 14, 2014 at 5:57 PM, Kishon Vijay Abraham I kis...@ti.com
 wrote:
 Hi,

 On Tuesday 08 April 2014 08:06 PM, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
   .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
   drivers/phy/Kconfig|   11 +
   drivers/phy/Makefile   |1 +
   drivers/phy/phy-exynos5-usbdrd.c   |  668
 
   4 files changed, 722 insertions(+)
   create mode 100644 drivers/phy/phy-exynos5-usbdrd.c

 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {

   Refer to DT bindings documentation of particular PHY consumer devices
 for more
   information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 + - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 + - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock
 property;
 +Required clocks:
 + - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP
 clock),
 +used for register access.
 + - ref: PHY's reference clock (usually crystal clock), associated 
 by
 +phy name, used to determine bit values for clock settings
 +register.
 + Additional clock required for Exynos5420:
 + - usb30_sclk_100m: Additional special clock used for PHY 
 operation
 +depicted as 'sclk_usbphy30' in CMU of 
 Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used 
 to
 +   control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to
 pmu-system-controller
 +   base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and 
 samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 + usb3_phy: usbphy@1210 {
 + compatible = samsung,exynos5250-usbdrd-phy;
 + reg = 0x1210 0x100;
 + clocks = clock 286, clock 1;
 + clock-names = phy, usb3phy_refclk;
 + samsung,syscon-phandle = pmu_syscon;
 + samsung,pmu-offset = 0x704;
 + #phy-cells = 1;
 + };
 diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
 index 8d3c49c..d955a05 100644
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
 @@ -166,4 +166,15 @@ config PHY_XGENE
help
  This option enables support for APM X-Gene SoC multi-purpose 
 PHY.

 +config PHY_EXYNOS5_USBDRD
 + tristate Exynos5 SoC series USB DRD PHY driver
 + depends on ARCH_EXYNOS5  OF
 + depends on HAS_IOMEM
 + select GENERIC_PHY
 + select MFD_SYSCON

 Lets try to avoid select in Kconfig. We've got enough problems with 
 that.

 I hope you meant with select MFD_SYSCON.
 We are referencing the syscon for accessing pmu reg, for which we need
 this config to be selected.
 Other Exynos phy drivers also need this config and for that they have
 selected this.

 Do you want me to do it any other way ?

 depends on is one option.

 Ok, i can see there are places where depends_on MFD_SYSCON is used.
 drivers/gpu/drm/exynos/Kconfig:60

 so, do you want me to fix at other places too ?

 But i also have a question here.
 MFD_SYSCON is a subsystem that's facilitating us in getting our work
 done here by giving an access to pmu_system_controller.
 So unless MFD_SYSCON is exposed, the phy driver will not be exposed to us.
 So is that valid enough really ?

 maybe in 

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Kishon Vijay Abraham I
Hi,

On Wednesday 09 April 2014 04:36 PM, Tomasz Figa wrote:
 Hi Vivek,
 
 Please see my comments inline.
 
 On 08.04.2014 16:36, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
   .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
   drivers/phy/Kconfig|   11 +
   drivers/phy/Makefile   |1 +
   drivers/phy/phy-exynos5-usbdrd.c   |  668 
 
   4 files changed, 722 insertions(+)
   create mode 100644 drivers/phy/phy-exynos5-usbdrd.c
 
 [snip]
 
 +Additional clock required for Exynos5420:
 +- usb30_sclk_100m: Additional special clock used for PHY operation
 +   depicted as 'sclk_usbphy30' in CMU of Exynos5420.
 
 Are you sure this isn't simply a gate for the ref clock, as it can be found on
 another SoC that is not upstream yet? I don't have documentation for Exynos
 5420 so I can't tell, but I'd like to ask you to recheck this.
 
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +  control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to
 pmu-system-controller
 +  base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 +usb3_phy: usbphy@1210 {
 +compatible = samsung,exynos5250-usbdrd-phy;
 +reg = 0x1210 0x100;
 +clocks = clock 286, clock 1;
 +clock-names = phy, usb3phy_refclk;
 
 Binding description above doesn't mention usb3phy_refclk entry.
 
 +samsung,syscon-phandle = pmu_syscon;
 +samsung,pmu-offset = 0x704;
 +#phy-cells = 1;
 +};
 
 [snip]
 
 diff --git a/drivers/phy/phy-exynos5-usbdrd.c 
 b/drivers/phy/phy-exynos5-usbdrd.c
 new file mode 100644
 index 000..ff54a7c
 --- /dev/null
 +++ b/drivers/phy/phy-exynos5-usbdrd.c
 
 [snip]
 
 +static int exynos5_usbdrd_phy_probe(struct platform_device *pdev)
 +{
 +struct device *dev = pdev-dev;
 +struct device_node *node = dev-of_node;
 +struct exynos5_usbdrd_phy *phy_drd;
 +struct phy_provider *phy_provider;
 +struct resource *res;
 +const struct of_device_id *match;
 +const struct exynos5_usbdrd_phy_drvdata *drv_data;
 +struct regmap *reg_pmu;
 +u32 pmu_offset;
 +int i;
 +
 +/*
 + * Exynos systems are completely DT enabled,
 + * so lets not have any platform data support for this driver.
 + */
 +if (!node) {
 +dev_err(dev, no device node found\n);
 
 This error message is not very meaningful. I'd rather use something like This
 driver can be only instantiated using Device Tree.

how about just adding depend_on OF in Kconfig?

Thanks
Kishon
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Vivek Gautam
Hi Kishon,


On Mon, Apr 14, 2014 at 5:24 PM, Kishon Vijay Abraham I kis...@ti.com wrote:
 Hi,

 On Wednesday 09 April 2014 04:36 PM, Tomasz Figa wrote:
 Hi Vivek,

 Please see my comments inline.

 On 08.04.2014 16:36, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
   .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
   drivers/phy/Kconfig|   11 +
   drivers/phy/Makefile   |1 +
   drivers/phy/phy-exynos5-usbdrd.c   |  668 
 
   4 files changed, 722 insertions(+)
   create mode 100644 drivers/phy/phy-exynos5-usbdrd.c

 [snip]

 +Additional clock required for Exynos5420:
 +- usb30_sclk_100m: Additional special clock used for PHY operation
 +   depicted as 'sclk_usbphy30' in CMU of Exynos5420.

 Are you sure this isn't simply a gate for the ref clock, as it can be found 
 on
 another SoC that is not upstream yet? I don't have documentation for Exynos
 5420 so I can't tell, but I'd like to ask you to recheck this.

 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +  control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to
 pmu-system-controller
 +  base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 +usb3_phy: usbphy@1210 {
 +compatible = samsung,exynos5250-usbdrd-phy;
 +reg = 0x1210 0x100;
 +clocks = clock 286, clock 1;
 +clock-names = phy, usb3phy_refclk;

 Binding description above doesn't mention usb3phy_refclk entry.

 +samsung,syscon-phandle = pmu_syscon;
 +samsung,pmu-offset = 0x704;
 +#phy-cells = 1;
 +};

 [snip]

 diff --git a/drivers/phy/phy-exynos5-usbdrd.c 
 b/drivers/phy/phy-exynos5-usbdrd.c
 new file mode 100644
 index 000..ff54a7c
 --- /dev/null
 +++ b/drivers/phy/phy-exynos5-usbdrd.c

 [snip]

 +static int exynos5_usbdrd_phy_probe(struct platform_device *pdev)
 +{
 +struct device *dev = pdev-dev;
 +struct device_node *node = dev-of_node;
 +struct exynos5_usbdrd_phy *phy_drd;
 +struct phy_provider *phy_provider;
 +struct resource *res;
 +const struct of_device_id *match;
 +const struct exynos5_usbdrd_phy_drvdata *drv_data;
 +struct regmap *reg_pmu;
 +u32 pmu_offset;
 +int i;
 +
 +/*
 + * Exynos systems are completely DT enabled,
 + * so lets not have any platform data support for this driver.
 + */
 +if (!node) {
 +dev_err(dev, no device node found\n);

 This error message is not very meaningful. I'd rather use something like 
 This
 driver can be only instantiated using Device Tree.

 how about just adding depend_on OF in Kconfig?

Already added a depend on 'OF'. Copying below the part of Kconfig in this patch.

  config PHY_EXYNOS5_USBDRD
 tristate Exynos5 SoC series USB DRD PHY driver
 depends on ARCH_EXYNOS5  OF
 depends on HAS_IOMEM
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Kishon Vijay Abraham I
Hi,

On Tuesday 08 April 2014 08:06 PM, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.
 
 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
  .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
  drivers/phy/Kconfig|   11 +
  drivers/phy/Makefile   |1 +
  drivers/phy/phy-exynos5-usbdrd.c   |  668 
 
  4 files changed, 722 insertions(+)
  create mode 100644 drivers/phy/phy-exynos5-usbdrd.c
 
 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {
  
  Refer to DT bindings documentation of particular PHY consumer devices for 
 more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 + - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 + - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock property;
 +Required clocks:
 + - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock),
 +used for register access.
 + - ref: PHY's reference clock (usually crystal clock), associated by
 +phy name, used to determine bit values for clock settings
 +register.
 + Additional clock required for Exynos5420:
 + - usb30_sclk_100m: Additional special clock used for PHY operation
 +depicted as 'sclk_usbphy30' in CMU of Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +   control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to 
 pmu-system-controller
 +   base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 + usb3_phy: usbphy@1210 {
 + compatible = samsung,exynos5250-usbdrd-phy;
 + reg = 0x1210 0x100;
 + clocks = clock 286, clock 1;
 + clock-names = phy, usb3phy_refclk;
 + samsung,syscon-phandle = pmu_syscon;
 + samsung,pmu-offset = 0x704;
 + #phy-cells = 1;
 + };
 diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
 index 8d3c49c..d955a05 100644
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
 @@ -166,4 +166,15 @@ config PHY_XGENE
   help
 This option enables support for APM X-Gene SoC multi-purpose PHY.
  
 +config PHY_EXYNOS5_USBDRD
 + tristate Exynos5 SoC series USB DRD PHY driver
 + depends on ARCH_EXYNOS5  OF
 + depends on HAS_IOMEM
 + select GENERIC_PHY
 + select MFD_SYSCON

Lets try to avoid select in Kconfig. We've got enough problems with that.
 + help
 +   Enable USB DRD PHY support for Exynos 5 SoC series.
 +   This driver provides PHY interface for USB 3.0 DRD controller
 +   present on Exynos5 SoC series.
 +
  endmenu
 diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile
 index 2faf78e..31baa0c 100644
 --- a/drivers/phy/Makefile
 +++ b/drivers/phy/Makefile
 @@ -18,3 +18,4 @@ obj-$(CONFIG_PHY_EXYNOS4210_USB2)   += phy-exynos4210-usb2.o
  obj-$(CONFIG_PHY_EXYNOS4X12_USB2)+= phy-exynos4x12-usb2.o
  obj-$(CONFIG_PHY_EXYNOS5250_USB2)+= phy-exynos5250-usb2.o
  obj-$(CONFIG_PHY_XGENE)  += phy-xgene.o
 +obj-$(CONFIG_PHY_EXYNOS5_USBDRD) += phy-exynos5-usbdrd.o
 diff --git a/drivers/phy/phy-exynos5-usbdrd.c 
 b/drivers/phy/phy-exynos5-usbdrd.c
 new file mode 100644
 index 000..ff54a7c
 --- /dev/null
 +++ b/drivers/phy/phy-exynos5-usbdrd.c
 @@ -0,0 +1,668 @@
 +/*
 + * Samsung EXYNOS5 SoC series USB DRD PHY driver
 + *
 + * Phy provider for USB 3.0 DRD controller on Exynos5 SoC series
 + *
 + * Copyright (C) 2013 Samsung Electronics Co., Ltd.

2014 already ;-)
 + * Author: Vivek Gautam gautam.vi...@samsung.com
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * 

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Vivek Gautam
Hi,


On Mon, Apr 14, 2014 at 5:57 PM, Kishon Vijay Abraham I kis...@ti.com wrote:
 Hi,

 On Tuesday 08 April 2014 08:06 PM, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
  .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
  drivers/phy/Kconfig|   11 +
  drivers/phy/Makefile   |1 +
  drivers/phy/phy-exynos5-usbdrd.c   |  668 
 
  4 files changed, 722 insertions(+)
  create mode 100644 drivers/phy/phy-exynos5-usbdrd.c

 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {

  Refer to DT bindings documentation of particular PHY consumer devices for 
 more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 + - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 + - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock property;
 +Required clocks:
 + - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock),
 +used for register access.
 + - ref: PHY's reference clock (usually crystal clock), associated by
 +phy name, used to determine bit values for clock settings
 +register.
 + Additional clock required for Exynos5420:
 + - usb30_sclk_100m: Additional special clock used for PHY operation
 +depicted as 'sclk_usbphy30' in CMU of Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +   control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to 
 pmu-system-controller
 +   base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 + usb3_phy: usbphy@1210 {
 + compatible = samsung,exynos5250-usbdrd-phy;
 + reg = 0x1210 0x100;
 + clocks = clock 286, clock 1;
 + clock-names = phy, usb3phy_refclk;
 + samsung,syscon-phandle = pmu_syscon;
 + samsung,pmu-offset = 0x704;
 + #phy-cells = 1;
 + };
 diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
 index 8d3c49c..d955a05 100644
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
 @@ -166,4 +166,15 @@ config PHY_XGENE
   help
 This option enables support for APM X-Gene SoC multi-purpose PHY.

 +config PHY_EXYNOS5_USBDRD
 + tristate Exynos5 SoC series USB DRD PHY driver
 + depends on ARCH_EXYNOS5  OF
 + depends on HAS_IOMEM
 + select GENERIC_PHY
 + select MFD_SYSCON

 Lets try to avoid select in Kconfig. We've got enough problems with that.

I hope you meant with select MFD_SYSCON.
We are referencing the syscon for accessing pmu reg, for which we need
this config to be selected.
Other Exynos phy drivers also need this config and for that they have
selected this.

Do you want me to do it any other way ?

 + help
 +   Enable USB DRD PHY support for Exynos 5 SoC series.
 +   This driver provides PHY interface for USB 3.0 DRD controller
 +   present on Exynos5 SoC series.
 +
  endmenu
 diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile
 index 2faf78e..31baa0c 100644
 --- a/drivers/phy/Makefile
 +++ b/drivers/phy/Makefile
 @@ -18,3 +18,4 @@ obj-$(CONFIG_PHY_EXYNOS4210_USB2)   += 
 phy-exynos4210-usb2.o
  obj-$(CONFIG_PHY_EXYNOS4X12_USB2)+= phy-exynos4x12-usb2.o
  obj-$(CONFIG_PHY_EXYNOS5250_USB2)+= phy-exynos5250-usb2.o
  obj-$(CONFIG_PHY_XGENE)  += phy-xgene.o
 +obj-$(CONFIG_PHY_EXYNOS5_USBDRD) += phy-exynos5-usbdrd.o
 diff --git a/drivers/phy/phy-exynos5-usbdrd.c 
 b/drivers/phy/phy-exynos5-usbdrd.c
 new file mode 100644
 index 000..ff54a7c
 --- /dev/null
 +++ b/drivers/phy/phy-exynos5-usbdrd.c
 @@ -0,0 

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Kishon Vijay Abraham I


On Monday 14 April 2014 06:12 PM, Vivek Gautam wrote:
 Hi,
 
 
 On Mon, Apr 14, 2014 at 5:57 PM, Kishon Vijay Abraham I kis...@ti.com wrote:
 Hi,

 On Tuesday 08 April 2014 08:06 PM, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
  .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
  drivers/phy/Kconfig|   11 +
  drivers/phy/Makefile   |1 +
  drivers/phy/phy-exynos5-usbdrd.c   |  668 
 
  4 files changed, 722 insertions(+)
  create mode 100644 drivers/phy/phy-exynos5-usbdrd.c

 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {

  Refer to DT bindings documentation of particular PHY consumer devices for 
 more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 + - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 + - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock property;
 +Required clocks:
 + - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock),
 +used for register access.
 + - ref: PHY's reference clock (usually crystal clock), associated by
 +phy name, used to determine bit values for clock settings
 +register.
 + Additional clock required for Exynos5420:
 + - usb30_sclk_100m: Additional special clock used for PHY operation
 +depicted as 'sclk_usbphy30' in CMU of Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +   control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to 
 pmu-system-controller
 +   base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 + usb3_phy: usbphy@1210 {
 + compatible = samsung,exynos5250-usbdrd-phy;
 + reg = 0x1210 0x100;
 + clocks = clock 286, clock 1;
 + clock-names = phy, usb3phy_refclk;
 + samsung,syscon-phandle = pmu_syscon;
 + samsung,pmu-offset = 0x704;
 + #phy-cells = 1;
 + };
 diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
 index 8d3c49c..d955a05 100644
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
 @@ -166,4 +166,15 @@ config PHY_XGENE
   help
 This option enables support for APM X-Gene SoC multi-purpose PHY.

 +config PHY_EXYNOS5_USBDRD
 + tristate Exynos5 SoC series USB DRD PHY driver
 + depends on ARCH_EXYNOS5  OF
 + depends on HAS_IOMEM
 + select GENERIC_PHY
 + select MFD_SYSCON

 Lets try to avoid select in Kconfig. We've got enough problems with that.
 
 I hope you meant with select MFD_SYSCON.
 We are referencing the syscon for accessing pmu reg, for which we need
 this config to be selected.
 Other Exynos phy drivers also need this config and for that they have
 selected this.
 
 Do you want me to do it any other way ?

depends on is one option.

Thanks
Kishon
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Kishon Vijay Abraham I


On Monday 14 April 2014 05:35 PM, Vivek Gautam wrote:
 Hi Kishon,
 
 
 On Mon, Apr 14, 2014 at 5:24 PM, Kishon Vijay Abraham I kis...@ti.com wrote:
 Hi,

 On Wednesday 09 April 2014 04:36 PM, Tomasz Figa wrote:
 Hi Vivek,

 Please see my comments inline.

 On 08.04.2014 16:36, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
   .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
   drivers/phy/Kconfig|   11 +
   drivers/phy/Makefile   |1 +
   drivers/phy/phy-exynos5-usbdrd.c   |  668 
 
   4 files changed, 722 insertions(+)
   create mode 100644 drivers/phy/phy-exynos5-usbdrd.c

 [snip]

 +Additional clock required for Exynos5420:
 +- usb30_sclk_100m: Additional special clock used for PHY operation
 +   depicted as 'sclk_usbphy30' in CMU of Exynos5420.

 Are you sure this isn't simply a gate for the ref clock, as it can be found 
 on
 another SoC that is not upstream yet? I don't have documentation for Exynos
 5420 so I can't tell, but I'd like to ask you to recheck this.

 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +  control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to
 pmu-system-controller
 +  base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 +usb3_phy: usbphy@1210 {
 +compatible = samsung,exynos5250-usbdrd-phy;
 +reg = 0x1210 0x100;
 +clocks = clock 286, clock 1;
 +clock-names = phy, usb3phy_refclk;

 Binding description above doesn't mention usb3phy_refclk entry.

 +samsung,syscon-phandle = pmu_syscon;
 +samsung,pmu-offset = 0x704;
 +#phy-cells = 1;
 +};

 [snip]

 diff --git a/drivers/phy/phy-exynos5-usbdrd.c 
 b/drivers/phy/phy-exynos5-usbdrd.c
 new file mode 100644
 index 000..ff54a7c
 --- /dev/null
 +++ b/drivers/phy/phy-exynos5-usbdrd.c

 [snip]

 +static int exynos5_usbdrd_phy_probe(struct platform_device *pdev)
 +{
 +struct device *dev = pdev-dev;
 +struct device_node *node = dev-of_node;
 +struct exynos5_usbdrd_phy *phy_drd;
 +struct phy_provider *phy_provider;
 +struct resource *res;
 +const struct of_device_id *match;
 +const struct exynos5_usbdrd_phy_drvdata *drv_data;
 +struct regmap *reg_pmu;
 +u32 pmu_offset;
 +int i;
 +
 +/*
 + * Exynos systems are completely DT enabled,
 + * so lets not have any platform data support for this driver.
 + */
 +if (!node) {
 +dev_err(dev, no device node found\n);

 This error message is not very meaningful. I'd rather use something like 
 This
 driver can be only instantiated using Device Tree.

 how about just adding depend_on OF in Kconfig?
 
 Already added a depend on 'OF'. Copying below the part of Kconfig in this 
 patch.

Alright.. Do we need the check then? If config_OF is enabled devices will be
created using device tree no?

Thanks
Kishon
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Vivek Gautam
On Mon, Apr 14, 2014 at 6:29 PM, Kishon Vijay Abraham I kis...@ti.com wrote:


 On Monday 14 April 2014 06:12 PM, Vivek Gautam wrote:
 Hi,


 On Mon, Apr 14, 2014 at 5:57 PM, Kishon Vijay Abraham I kis...@ti.com 
 wrote:
 Hi,

 On Tuesday 08 April 2014 08:06 PM, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
  .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
  drivers/phy/Kconfig|   11 +
  drivers/phy/Makefile   |1 +
  drivers/phy/phy-exynos5-usbdrd.c   |  668 
 
  4 files changed, 722 insertions(+)
  create mode 100644 drivers/phy/phy-exynos5-usbdrd.c

 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {

  Refer to DT bindings documentation of particular PHY consumer devices for 
 more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 + - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 + - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock 
 property;
 +Required clocks:
 + - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP 
 clock),
 +used for register access.
 + - ref: PHY's reference clock (usually crystal clock), associated by
 +phy name, used to determine bit values for clock settings
 +register.
 + Additional clock required for Exynos5420:
 + - usb30_sclk_100m: Additional special clock used for PHY operation
 +depicted as 'sclk_usbphy30' in CMU of Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +   control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to 
 pmu-system-controller
 +   base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 + usb3_phy: usbphy@1210 {
 + compatible = samsung,exynos5250-usbdrd-phy;
 + reg = 0x1210 0x100;
 + clocks = clock 286, clock 1;
 + clock-names = phy, usb3phy_refclk;
 + samsung,syscon-phandle = pmu_syscon;
 + samsung,pmu-offset = 0x704;
 + #phy-cells = 1;
 + };
 diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
 index 8d3c49c..d955a05 100644
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
 @@ -166,4 +166,15 @@ config PHY_XGENE
   help
 This option enables support for APM X-Gene SoC multi-purpose PHY.

 +config PHY_EXYNOS5_USBDRD
 + tristate Exynos5 SoC series USB DRD PHY driver
 + depends on ARCH_EXYNOS5  OF
 + depends on HAS_IOMEM
 + select GENERIC_PHY
 + select MFD_SYSCON

 Lets try to avoid select in Kconfig. We've got enough problems with that.

 I hope you meant with select MFD_SYSCON.
 We are referencing the syscon for accessing pmu reg, for which we need
 this config to be selected.
 Other Exynos phy drivers also need this config and for that they have
 selected this.

 Do you want me to do it any other way ?

 depends on is one option.

Ok, i can see there are places where depends_on MFD_SYSCON is used.
drivers/gpu/drm/exynos/Kconfig:60

so, do you want me to fix at other places too ?

But i also have a question here.
MFD_SYSCON is a subsystem that's facilitating us in getting our work
done here by giving an access to pmu_system_controller.
So unless MFD_SYSCON is exposed, the phy driver will not be exposed to us.
So is that valid enough really ?


 Thanks
 Kishon
 --
 To unsubscribe from this list: send the line unsubscribe linux-samsung-soc 
 in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Best Regards
Vivek Gautam
Samsung RD 

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Kishon Vijay Abraham I


On Monday 14 April 2014 06:50 PM, Vivek Gautam wrote:
 On Mon, Apr 14, 2014 at 6:29 PM, Kishon Vijay Abraham I kis...@ti.com wrote:


 On Monday 14 April 2014 06:12 PM, Vivek Gautam wrote:
 Hi,


 On Mon, Apr 14, 2014 at 5:57 PM, Kishon Vijay Abraham I kis...@ti.com 
 wrote:
 Hi,

 On Tuesday 08 April 2014 08:06 PM, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
  .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
  drivers/phy/Kconfig|   11 +
  drivers/phy/Makefile   |1 +
  drivers/phy/phy-exynos5-usbdrd.c   |  668 
 
  4 files changed, 722 insertions(+)
  create mode 100644 drivers/phy/phy-exynos5-usbdrd.c

 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {

  Refer to DT bindings documentation of particular PHY consumer devices 
 for more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 + - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 + - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock 
 property;
 +Required clocks:
 + - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP 
 clock),
 +used for register access.
 + - ref: PHY's reference clock (usually crystal clock), associated by
 +phy name, used to determine bit values for clock settings
 +register.
 + Additional clock required for Exynos5420:
 + - usb30_sclk_100m: Additional special clock used for PHY operation
 +depicted as 'sclk_usbphy30' in CMU of Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +   control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to 
 pmu-system-controller
 +   base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 + usb3_phy: usbphy@1210 {
 + compatible = samsung,exynos5250-usbdrd-phy;
 + reg = 0x1210 0x100;
 + clocks = clock 286, clock 1;
 + clock-names = phy, usb3phy_refclk;
 + samsung,syscon-phandle = pmu_syscon;
 + samsung,pmu-offset = 0x704;
 + #phy-cells = 1;
 + };
 diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
 index 8d3c49c..d955a05 100644
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
 @@ -166,4 +166,15 @@ config PHY_XGENE
   help
 This option enables support for APM X-Gene SoC multi-purpose PHY.

 +config PHY_EXYNOS5_USBDRD
 + tristate Exynos5 SoC series USB DRD PHY driver
 + depends on ARCH_EXYNOS5  OF
 + depends on HAS_IOMEM
 + select GENERIC_PHY
 + select MFD_SYSCON

 Lets try to avoid select in Kconfig. We've got enough problems with that.

 I hope you meant with select MFD_SYSCON.
 We are referencing the syscon for accessing pmu reg, for which we need
 this config to be selected.
 Other Exynos phy drivers also need this config and for that they have
 selected this.

 Do you want me to do it any other way ?

 depends on is one option.
 
 Ok, i can see there are places where depends_on MFD_SYSCON is used.
 drivers/gpu/drm/exynos/Kconfig:60
 
 so, do you want me to fix at other places too ?
 
 But i also have a question here.
 MFD_SYSCON is a subsystem that's facilitating us in getting our work
 done here by giving an access to pmu_system_controller.
 So unless MFD_SYSCON is exposed, the phy driver will not be exposed to us.
 So is that valid enough really ?

maybe in the Kconfig for MFD_SYSCON, we can select it if PHY_EXYNOS5_USBDRD is
enabled?

config MFD_SYSCON
default y if PHY_EXYNOS5_USBDRD

Thanks
Kishon
--
To unsubscribe from this list: send the line 

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Vivek Gautam
On Mon, Apr 14, 2014 at 6:56 PM, Kishon Vijay Abraham I kis...@ti.com wrote:


 On Monday 14 April 2014 06:50 PM, Vivek Gautam wrote:
 On Mon, Apr 14, 2014 at 6:29 PM, Kishon Vijay Abraham I kis...@ti.com 
 wrote:


 On Monday 14 April 2014 06:12 PM, Vivek Gautam wrote:
 Hi,


 On Mon, Apr 14, 2014 at 5:57 PM, Kishon Vijay Abraham I kis...@ti.com 
 wrote:
 Hi,

 On Tuesday 08 April 2014 08:06 PM, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
  .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
  drivers/phy/Kconfig|   11 +
  drivers/phy/Makefile   |1 +
  drivers/phy/phy-exynos5-usbdrd.c   |  668 
 
  4 files changed, 722 insertions(+)
  create mode 100644 drivers/phy/phy-exynos5-usbdrd.c

 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {

  Refer to DT bindings documentation of particular PHY consumer devices 
 for more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 + - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 + - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock 
 property;
 +Required clocks:
 + - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP 
 clock),
 +used for register access.
 + - ref: PHY's reference clock (usually crystal clock), associated by
 +phy name, used to determine bit values for clock settings
 +register.
 + Additional clock required for Exynos5420:
 + - usb30_sclk_100m: Additional special clock used for PHY operation
 +depicted as 'sclk_usbphy30' in CMU of 
 Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +   control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to 
 pmu-system-controller
 +   base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 + usb3_phy: usbphy@1210 {
 + compatible = samsung,exynos5250-usbdrd-phy;
 + reg = 0x1210 0x100;
 + clocks = clock 286, clock 1;
 + clock-names = phy, usb3phy_refclk;
 + samsung,syscon-phandle = pmu_syscon;
 + samsung,pmu-offset = 0x704;
 + #phy-cells = 1;
 + };
 diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
 index 8d3c49c..d955a05 100644
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
 @@ -166,4 +166,15 @@ config PHY_XGENE
   help
 This option enables support for APM X-Gene SoC multi-purpose PHY.

 +config PHY_EXYNOS5_USBDRD
 + tristate Exynos5 SoC series USB DRD PHY driver
 + depends on ARCH_EXYNOS5  OF
 + depends on HAS_IOMEM
 + select GENERIC_PHY
 + select MFD_SYSCON

 Lets try to avoid select in Kconfig. We've got enough problems with that.

 I hope you meant with select MFD_SYSCON.
 We are referencing the syscon for accessing pmu reg, for which we need
 this config to be selected.
 Other Exynos phy drivers also need this config and for that they have
 selected this.

 Do you want me to do it any other way ?

 depends on is one option.

 Ok, i can see there are places where depends_on MFD_SYSCON is used.
 drivers/gpu/drm/exynos/Kconfig:60

 so, do you want me to fix at other places too ?

 But i also have a question here.
 MFD_SYSCON is a subsystem that's facilitating us in getting our work
 done here by giving an access to pmu_system_controller.
 So unless MFD_SYSCON is exposed, the phy driver will not be exposed to us.
 So is that valid enough really ?

 maybe in the Kconfig for MFD_SYSCON, we can select it if PHY_EXYNOS5_USBDRD is
 enabled?

 config MFD_SYSCON
 default y if 

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Tomasz Figa

On 14.04.2014 15:05, Kishon Vijay Abraham I wrote:



On Monday 14 April 2014 05:35 PM, Vivek Gautam wrote:

Hi Kishon,


On Mon, Apr 14, 2014 at 5:24 PM, Kishon Vijay Abraham I kis...@ti.com wrote:

Hi,

On Wednesday 09 April 2014 04:36 PM, Tomasz Figa wrote:

Hi Vivek,

Please see my comments inline.

On 08.04.2014 16:36, Vivek Gautam wrote:

Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
The new driver uses the generic PHY framework and will interact
with DWC3 controller present on Exynos5 series of SoCs.
Thereby, removing old phy-samsung-usb3 driver and related code
used untill now which was based on usb/phy framework.

Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
---
   .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
   drivers/phy/Kconfig|   11 +
   drivers/phy/Makefile   |1 +
   drivers/phy/phy-exynos5-usbdrd.c   |  668 

   4 files changed, 722 insertions(+)
   create mode 100644 drivers/phy/phy-exynos5-usbdrd.c


[snip]


+Additional clock required for Exynos5420:
+- usb30_sclk_100m: Additional special clock used for PHY operation
+   depicted as 'sclk_usbphy30' in CMU of Exynos5420.


Are you sure this isn't simply a gate for the ref clock, as it can be found on
another SoC that is not upstream yet? I don't have documentation for Exynos
5420 so I can't tell, but I'd like to ask you to recheck this.


+- samsung,syscon-phandle: phandle for syscon interface, which is used to
+  control pmu registers for power isolation.
+- samsung,pmu-offset: phy power control register offset to
pmu-system-controller
+  base.
+- #phy-cells : from the generic PHY bindings, must be 1;
+
+For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
+compatible PHYs, the second cell in the PHY specifier identifies the
+PHY id, which is interpreted as follows:
+  0 - UTMI+ type phy,
+  1 - PIPE3 type phy,
+
+Example:
+usb3_phy: usbphy@1210 {
+compatible = samsung,exynos5250-usbdrd-phy;
+reg = 0x1210 0x100;
+clocks = clock 286, clock 1;
+clock-names = phy, usb3phy_refclk;


Binding description above doesn't mention usb3phy_refclk entry.


+samsung,syscon-phandle = pmu_syscon;
+samsung,pmu-offset = 0x704;
+#phy-cells = 1;
+};


[snip]


diff --git a/drivers/phy/phy-exynos5-usbdrd.c b/drivers/phy/phy-exynos5-usbdrd.c
new file mode 100644
index 000..ff54a7c
--- /dev/null
+++ b/drivers/phy/phy-exynos5-usbdrd.c


[snip]


+static int exynos5_usbdrd_phy_probe(struct platform_device *pdev)
+{
+struct device *dev = pdev-dev;
+struct device_node *node = dev-of_node;
+struct exynos5_usbdrd_phy *phy_drd;
+struct phy_provider *phy_provider;
+struct resource *res;
+const struct of_device_id *match;
+const struct exynos5_usbdrd_phy_drvdata *drv_data;
+struct regmap *reg_pmu;
+u32 pmu_offset;
+int i;
+
+/*
+ * Exynos systems are completely DT enabled,
+ * so lets not have any platform data support for this driver.
+ */
+if (!node) {
+dev_err(dev, no device node found\n);


This error message is not very meaningful. I'd rather use something like This
driver can be only instantiated using Device Tree.


how about just adding depend_on OF in Kconfig?


Already added a depend on 'OF'. Copying below the part of Kconfig in this patch.


Alright.. Do we need the check then? If config_OF is enabled devices will be
created using device tree no?


Not necessarily. Enabling support for OF doesn't mean that it is the 
only boot method that can be used. Legacy board files may be still 
available. I'm not sure why someone would try to instantiate this driver 
from them, though.


Best regards,
Tomasz
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Vivek Gautam
On Mon, Apr 14, 2014 at 7:10 PM, Vivek Gautam gautam.vi...@samsung.com wrote:

Just correcting mail-ids for Mark and Dong with the latest ones
(earlier ones got bounced back)

 On Mon, Apr 14, 2014 at 6:56 PM, Kishon Vijay Abraham I kis...@ti.com wrote:


 On Monday 14 April 2014 06:50 PM, Vivek Gautam wrote:
 On Mon, Apr 14, 2014 at 6:29 PM, Kishon Vijay Abraham I kis...@ti.com 
 wrote:


 On Monday 14 April 2014 06:12 PM, Vivek Gautam wrote:
 Hi,


 On Mon, Apr 14, 2014 at 5:57 PM, Kishon Vijay Abraham I kis...@ti.com 
 wrote:
 Hi,

 On Tuesday 08 April 2014 08:06 PM, Vivek Gautam wrote:
 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
  .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
  drivers/phy/Kconfig|   11 +
  drivers/phy/Makefile   |1 +
  drivers/phy/phy-exynos5-usbdrd.c   |  668 
 
  4 files changed, 722 insertions(+)
  create mode 100644 drivers/phy/phy-exynos5-usbdrd.c

 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {

  Refer to DT bindings documentation of particular PHY consumer devices 
 for more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 + - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 + - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock 
 property;
 +Required clocks:
 + - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP 
 clock),
 +used for register access.
 + - ref: PHY's reference clock (usually crystal clock), associated 
 by
 +phy name, used to determine bit values for clock settings
 +register.
 + Additional clock required for Exynos5420:
 + - usb30_sclk_100m: Additional special clock used for PHY operation
 +depicted as 'sclk_usbphy30' in CMU of 
 Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used 
 to
 +   control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to 
 pmu-system-controller
 +   base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 + usb3_phy: usbphy@1210 {
 + compatible = samsung,exynos5250-usbdrd-phy;
 + reg = 0x1210 0x100;
 + clocks = clock 286, clock 1;
 + clock-names = phy, usb3phy_refclk;
 + samsung,syscon-phandle = pmu_syscon;
 + samsung,pmu-offset = 0x704;
 + #phy-cells = 1;
 + };
 diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
 index 8d3c49c..d955a05 100644
 --- a/drivers/phy/Kconfig
 +++ b/drivers/phy/Kconfig
 @@ -166,4 +166,15 @@ config PHY_XGENE
   help
 This option enables support for APM X-Gene SoC multi-purpose 
 PHY.

 +config PHY_EXYNOS5_USBDRD
 + tristate Exynos5 SoC series USB DRD PHY driver
 + depends on ARCH_EXYNOS5  OF
 + depends on HAS_IOMEM
 + select GENERIC_PHY
 + select MFD_SYSCON

 Lets try to avoid select in Kconfig. We've got enough problems with that.

 I hope you meant with select MFD_SYSCON.
 We are referencing the syscon for accessing pmu reg, for which we need
 this config to be selected.
 Other Exynos phy drivers also need this config and for that they have
 selected this.

 Do you want me to do it any other way ?

 depends on is one option.

 Ok, i can see there are places where depends_on MFD_SYSCON is used.
 drivers/gpu/drm/exynos/Kconfig:60

 so, do you want me to fix at other places too ?

 But i also have a question here.
 MFD_SYSCON is a subsystem that's facilitating us in getting our work
 done here by giving an access to pmu_system_controller.
 So unless MFD_SYSCON is exposed, the phy driver will 

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Vivek Gautam
Hi,


On Mon, Apr 14, 2014 at 7:14 PM, Tomasz Figa tomasz.f...@gmail.com wrote:
 On 14.04.2014 15:05, Kishon Vijay Abraham I wrote:



 On Monday 14 April 2014 05:35 PM, Vivek Gautam wrote:

 Hi Kishon,


 On Mon, Apr 14, 2014 at 5:24 PM, Kishon Vijay Abraham I kis...@ti.com
 wrote:

 Hi,

 On Wednesday 09 April 2014 04:36 PM, Tomasz Figa wrote:

 Hi Vivek,

 Please see my comments inline.

 On 08.04.2014 16:36, Vivek Gautam wrote:

 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
.../devicetree/bindings/phy/samsung-phy.txt|   42 ++
drivers/phy/Kconfig|   11 +
drivers/phy/Makefile   |1 +
drivers/phy/phy-exynos5-usbdrd.c   |  668
 
4 files changed, 722 insertions(+)
create mode 100644 drivers/phy/phy-exynos5-usbdrd.c


 [snip]

 +Additional clock required for Exynos5420:
 +- usb30_sclk_100m: Additional special clock used for PHY
 operation
 +   depicted as 'sclk_usbphy30' in CMU of Exynos5420.


 Are you sure this isn't simply a gate for the ref clock, as it can be
 found on
 another SoC that is not upstream yet? I don't have documentation for
 Exynos
 5420 so I can't tell, but I'd like to ask you to recheck this.

 +- samsung,syscon-phandle: phandle for syscon interface, which is used
 to
 +  control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to
 pmu-system-controller
 +  base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and
 samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 +usb3_phy: usbphy@1210 {
 +compatible = samsung,exynos5250-usbdrd-phy;
 +reg = 0x1210 0x100;
 +clocks = clock 286, clock 1;
 +clock-names = phy, usb3phy_refclk;


 Binding description above doesn't mention usb3phy_refclk entry.

 +samsung,syscon-phandle = pmu_syscon;
 +samsung,pmu-offset = 0x704;
 +#phy-cells = 1;
 +};


 [snip]

 diff --git a/drivers/phy/phy-exynos5-usbdrd.c
 b/drivers/phy/phy-exynos5-usbdrd.c
 new file mode 100644
 index 000..ff54a7c
 --- /dev/null
 +++ b/drivers/phy/phy-exynos5-usbdrd.c


 [snip]

 +static int exynos5_usbdrd_phy_probe(struct platform_device *pdev)
 +{
 +struct device *dev = pdev-dev;
 +struct device_node *node = dev-of_node;
 +struct exynos5_usbdrd_phy *phy_drd;
 +struct phy_provider *phy_provider;
 +struct resource *res;
 +const struct of_device_id *match;
 +const struct exynos5_usbdrd_phy_drvdata *drv_data;
 +struct regmap *reg_pmu;
 +u32 pmu_offset;
 +int i;
 +
 +/*
 + * Exynos systems are completely DT enabled,
 + * so lets not have any platform data support for this driver.
 + */
 +if (!node) {
 +dev_err(dev, no device node found\n);


 This error message is not very meaningful. I'd rather use something
 like This
 driver can be only instantiated using Device Tree.


 how about just adding depend_on OF in Kconfig?


 Already added a depend on 'OF'. Copying below the part of Kconfig in this
 patch.


 Alright.. Do we need the check then? If config_OF is enabled devices will
 be
 created using device tree no?


 Not necessarily. Enabling support for OF doesn't mean that it is the only
 boot method that can be used. Legacy board files may be still available. I'm
 not sure why someone would try to instantiate this driver from them, though.

True, we don't have a scope of instantiating this driver using old
platform device and
old legacy board files.
So we don't need this check then, right ?


-- 
Best Regards
Vivek Gautam
Samsung RD Institute, Bangalore
India
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Sylwester Nawrocki
On 08/04/14 16:36, Vivek Gautam wrote:
 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {
  
  Refer to DT bindings documentation of particular PHY consumer devices for 
 more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 + - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 + - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock property;
 +Required clocks:
 + - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock),
 +used for register access.
 + - ref: PHY's reference clock (usually crystal clock), associated by
 +phy name, used to determine bit values for clock settings
 +register.
 + Additional clock required for Exynos5420:
 + - usb30_sclk_100m: Additional special clock used for PHY operation
 +depicted as 'sclk_usbphy30' in CMU of Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +   control pmu registers for power isolation.

Why to append -phandle to the property's name ? If this is for PMU
perhaps make it more explicit and name it: samsung,pmu-syscon or
samsung,pmureg ?

 +- samsung,pmu-offset: phy power control register offset to 
 pmu-system-controller
 +   base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,

-- 
Thanks,
Sylwester
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-14 Thread Vivek Gautam
Hi,


On Mon, Apr 14, 2014 at 8:07 PM, Sylwester Nawrocki
s.nawro...@samsung.com wrote:
 On 08/04/14 16:36, Vivek Gautam wrote:
 diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
 b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 index 28f9edb..6d99ba9 100644
 --- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
 +++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
 @@ -74,3 +74,45 @@ phy-consumer@1234 {

  Refer to DT bindings documentation of particular PHY consumer devices for 
 more
  information about required PHYs and the way of specification.
 +
 +Samsung Exynos5 SoC series USB DRD PHY controller
 +--
 +
 +Required properties:
 +- compatible : Should be set to one of the following supported values:
 + - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
 + - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
 +- reg : Register offset and length of USB DRD PHY register set;
 +- clocks: Clock IDs array as required by the controller
 +- clock-names: names of clocks correseponding to IDs in the clock property;
 +Required clocks:
 + - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock),
 +used for register access.
 + - ref: PHY's reference clock (usually crystal clock), associated by
 +phy name, used to determine bit values for clock settings
 +register.
 + Additional clock required for Exynos5420:
 + - usb30_sclk_100m: Additional special clock used for PHY operation
 +depicted as 'sclk_usbphy30' in CMU of Exynos5420.
 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 +   control pmu registers for power isolation.

 Why to append -phandle to the property's name ? If this is for PMU
 perhaps make it more explicit and name it: samsung,pmu-syscon or
 samsung,pmureg ?

Right, thanks for pointing out this.
Will rename it to samsung,pmu-syscon. That will be inline with the
phandle it points to.
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-10 Thread Vivek Gautam
On Wed, Apr 9, 2014 at 7:03 PM, Tomasz Figa t.f...@samsung.com wrote:
 On 09.04.2014 13:49, Vivek Gautam wrote:

 Hi,


 On Wed, Apr 9, 2014 at 4:36 PM, Tomasz Figa t.f...@samsung.com wrote:

 Hi Vivek,

 Please see my comments inline.


 On 08.04.2014 16:36, Vivek Gautam wrote:


 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
.../devicetree/bindings/phy/samsung-phy.txt|   42 ++
drivers/phy/Kconfig|   11 +
drivers/phy/Makefile   |1 +
drivers/phy/phy-exynos5-usbdrd.c   |  668
 
4 files changed, 722 insertions(+)
create mode 100644 drivers/phy/phy-exynos5-usbdrd.c



 [snip]


 +   Additional clock required for Exynos5420:
 +   - usb30_sclk_100m: Additional special clock used for PHY
 operation
 +  depicted as 'sclk_usbphy30' in CMU of
 Exynos5420.



 Are you sure this isn't simply a gate for the ref clock, as it can be
 found
 on another SoC that is not upstream yet? I don't have documentation for
 Exynos 5420 so I can't tell, but I'd like to ask you to recheck this.


 From what i can see in the manual :

 sclk_usbphy30 is derived from OSCCLK.
 It is coming from a MUX (default input line to this is OSCCLK)  and
 then through a DIV
 there's this gate.

{OSCCLK  + other sources} ---[MUX] --- [DIV] -- [GATE for
 sclk_usbphy30]

 the {rate of sclk_usbphy30} == OSCCLK

 However the 'ref' clock that we have been using is the actual oscillator
 clock.
 And on SoC Exynos5250, we don't have any such gate (sclk_usbphy30).
 So should this mean that ref clock and sclk_usbphy30 are still be
 controlled by
 two different gates ?


 Is there maybe a diagram of PHY input clocks in the datasheet, like for USB
 2.0 PHY in Exynos4210/4412/5250 datasheets in the chapter about USB2.0
 Device? Something like:

  
 ||
 | ___|
 XusbXTI |   Phy_fsel[2:0]|  ___  |
___[X]___|| __|_|___|\__|_|
   | |   _v___ |  _   ^ |   |/  | |
 _   |  | || | |  | |  ___  | |
  ___|  | || | |  | | |   |_|_|
 |___|   |  | X 0 ||_| PLL |__|_|_|CLK|_|_|
 _   |  | |  | || |DIV|_|_|
   |___[X]   |  |_| 12   |_|480 | |___| | |
 |  MHz MHz |Digital| |
 XusbXTO |   USB PHY|___| |
 ||



Below is the block diagram given for DRD controller.

___
||
|   |
|  | PHY   |  |
|  | controller |-|---
|  |__  | |   |
||
  |
| USB 3.0   |  V
|   DRD  |
---
|Controller  |  |
 |
||USB30_SCLK_100M| USB 3.0 DRD  |
|    |   ---
|   PHY |
| | Link cont. | |  |
 |
|  - |
 |   |
|___| |_|

Does this help ?

So, USB30_SCLK_100M is the SCLK that we are talking in the driver. I
don't see any reference to XXTI in the USB 3.0 DRD controller chapter
(in both Exynos5250 and 5420)
In addition to this there's one more point to be noticed here.
On Exynos5420 system, the sclk_usbphy300 (which is the sclk_usbphy30
for USB DRD channel 0), is also the PICO phy clock, i.e. USB 2.0 phy
clock.
So we should add a similar clk_get() for this clock in the
phy-exynos5250-usb2 driver too, to support Exynos5420.



 Best regards,
 Tomasz
 --
 To unsubscribe from this list: send the line unsubscribe linux-usb in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Best Regards
Vivek Gautam
Samsung RD Institute, Bangalore
India
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-09 Thread Tomasz Figa

Hi Vivek,

Please see my comments inline.

On 08.04.2014 16:36, Vivek Gautam wrote:

Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
The new driver uses the generic PHY framework and will interact
with DWC3 controller present on Exynos5 series of SoCs.
Thereby, removing old phy-samsung-usb3 driver and related code
used untill now which was based on usb/phy framework.

Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
---
  .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
  drivers/phy/Kconfig|   11 +
  drivers/phy/Makefile   |1 +
  drivers/phy/phy-exynos5-usbdrd.c   |  668 
  4 files changed, 722 insertions(+)
  create mode 100644 drivers/phy/phy-exynos5-usbdrd.c


[snip]


+   Additional clock required for Exynos5420:
+   - usb30_sclk_100m: Additional special clock used for PHY operation
+  depicted as 'sclk_usbphy30' in CMU of Exynos5420.


Are you sure this isn't simply a gate for the ref clock, as it can be 
found on another SoC that is not upstream yet? I don't have 
documentation for Exynos 5420 so I can't tell, but I'd like to ask you 
to recheck this.



+- samsung,syscon-phandle: phandle for syscon interface, which is used to
+ control pmu registers for power isolation.
+- samsung,pmu-offset: phy power control register offset to 
pmu-system-controller
+ base.
+- #phy-cells : from the generic PHY bindings, must be 1;
+
+For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
+compatible PHYs, the second cell in the PHY specifier identifies the
+PHY id, which is interpreted as follows:
+  0 - UTMI+ type phy,
+  1 - PIPE3 type phy,
+
+Example:
+   usb3_phy: usbphy@1210 {
+   compatible = samsung,exynos5250-usbdrd-phy;
+   reg = 0x1210 0x100;
+   clocks = clock 286, clock 1;
+   clock-names = phy, usb3phy_refclk;


Binding description above doesn't mention usb3phy_refclk entry.


+   samsung,syscon-phandle = pmu_syscon;
+   samsung,pmu-offset = 0x704;
+   #phy-cells = 1;
+   };


[snip]


diff --git a/drivers/phy/phy-exynos5-usbdrd.c b/drivers/phy/phy-exynos5-usbdrd.c
new file mode 100644
index 000..ff54a7c
--- /dev/null
+++ b/drivers/phy/phy-exynos5-usbdrd.c


[snip]


+static int exynos5_usbdrd_phy_probe(struct platform_device *pdev)
+{
+   struct device *dev = pdev-dev;
+   struct device_node *node = dev-of_node;
+   struct exynos5_usbdrd_phy *phy_drd;
+   struct phy_provider *phy_provider;
+   struct resource *res;
+   const struct of_device_id *match;
+   const struct exynos5_usbdrd_phy_drvdata *drv_data;
+   struct regmap *reg_pmu;
+   u32 pmu_offset;
+   int i;
+
+   /*
+* Exynos systems are completely DT enabled,
+* so lets not have any platform data support for this driver.
+*/
+   if (!node) {
+   dev_err(dev, no device node found\n);


This error message is not very meaningful. I'd rather use something like 
This driver can be only instantiated using Device Tree.



+   return -ENODEV;
+   }
+
+   match = of_match_node(exynos5_usbdrd_phy_of_match, pdev-dev.of_node);
+   if (!match) {
+   dev_err(dev, of_match_node() failed\n);
+   return -EINVAL;
+   }
+   drv_data = match-data;
+
+   phy_drd = devm_kzalloc(dev, sizeof(*phy_drd), GFP_KERNEL);
+   if (!phy_drd)
+   return -ENOMEM;
+
+   dev_set_drvdata(dev, phy_drd);
+   phy_drd-dev = dev;
+
+   res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+   phy_drd-reg_phy = devm_ioremap_resource(dev, res);
+   if (IS_ERR(phy_drd-reg_phy)) {
+   dev_err(dev, Failed to map register memory (phy)\n);


devm_ioremap_resource() already prints an error message.

Best regards,
Tomasz
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-09 Thread Vivek Gautam
Hi,


On Wed, Apr 9, 2014 at 4:36 PM, Tomasz Figa t.f...@samsung.com wrote:
 Hi Vivek,

 Please see my comments inline.


 On 08.04.2014 16:36, Vivek Gautam wrote:

 Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
 The new driver uses the generic PHY framework and will interact
 with DWC3 controller present on Exynos5 series of SoCs.
 Thereby, removing old phy-samsung-usb3 driver and related code
 used untill now which was based on usb/phy framework.

 Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
 ---
   .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
   drivers/phy/Kconfig|   11 +
   drivers/phy/Makefile   |1 +
   drivers/phy/phy-exynos5-usbdrd.c   |  668
 
   4 files changed, 722 insertions(+)
   create mode 100644 drivers/phy/phy-exynos5-usbdrd.c


 [snip]


 +   Additional clock required for Exynos5420:
 +   - usb30_sclk_100m: Additional special clock used for PHY operation
 +  depicted as 'sclk_usbphy30' in CMU of
 Exynos5420.


 Are you sure this isn't simply a gate for the ref clock, as it can be found
 on another SoC that is not upstream yet? I don't have documentation for
 Exynos 5420 so I can't tell, but I'd like to ask you to recheck this.

From what i can see in the manual :
sclk_usbphy30 is derived from OSCCLK.
It is coming from a MUX (default input line to this is OSCCLK)  and
then through a DIV
there's this gate.

  {OSCCLK  + other sources} ---[MUX] --- [DIV] -- [GATE for
sclk_usbphy30]

the {rate of sclk_usbphy30} == OSCCLK

However the 'ref' clock that we have been using is the actual oscillator clock.
And on SoC Exynos5250, we don't have any such gate (sclk_usbphy30).
So should this mean that ref clock and sclk_usbphy30 are still be controlled by
two different gates ?



 +- samsung,syscon-phandle: phandle for syscon interface, which is used to
 + control pmu registers for power isolation.
 +- samsung,pmu-offset: phy power control register offset to
 pmu-system-controller
 + base.
 +- #phy-cells : from the generic PHY bindings, must be 1;
 +
 +For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
 +compatible PHYs, the second cell in the PHY specifier identifies the
 +PHY id, which is interpreted as follows:
 +  0 - UTMI+ type phy,
 +  1 - PIPE3 type phy,
 +
 +Example:
 +   usb3_phy: usbphy@1210 {
 +   compatible = samsung,exynos5250-usbdrd-phy;
 +   reg = 0x1210 0x100;
 +   clocks = clock 286, clock 1;
 +   clock-names = phy, usb3phy_refclk;


 Binding description above doesn't mention usb3phy_refclk entry.

my bad !! will correct this.



 +   samsung,syscon-phandle = pmu_syscon;
 +   samsung,pmu-offset = 0x704;
 +   #phy-cells = 1;
 +   };


 [snip]


 diff --git a/drivers/phy/phy-exynos5-usbdrd.c
 b/drivers/phy/phy-exynos5-usbdrd.c
 new file mode 100644
 index 000..ff54a7c
 --- /dev/null
 +++ b/drivers/phy/phy-exynos5-usbdrd.c


 [snip]


 +static int exynos5_usbdrd_phy_probe(struct platform_device *pdev)
 +{
 +   struct device *dev = pdev-dev;
 +   struct device_node *node = dev-of_node;
 +   struct exynos5_usbdrd_phy *phy_drd;
 +   struct phy_provider *phy_provider;
 +   struct resource *res;
 +   const struct of_device_id *match;
 +   const struct exynos5_usbdrd_phy_drvdata *drv_data;
 +   struct regmap *reg_pmu;
 +   u32 pmu_offset;
 +   int i;
 +
 +   /*
 +* Exynos systems are completely DT enabled,
 +* so lets not have any platform data support for this driver.
 +*/
 +   if (!node) {
 +   dev_err(dev, no device node found\n);


 This error message is not very meaningful. I'd rather use something like
 This driver can be only instantiated using Device Tree.

Sure, will amend this.



 +   return -ENODEV;
 +   }
 +
 +   match = of_match_node(exynos5_usbdrd_phy_of_match,
 pdev-dev.of_node);
 +   if (!match) {
 +   dev_err(dev, of_match_node() failed\n);
 +   return -EINVAL;
 +   }
 +   drv_data = match-data;
 +
 +   phy_drd = devm_kzalloc(dev, sizeof(*phy_drd), GFP_KERNEL);
 +   if (!phy_drd)
 +   return -ENOMEM;
 +
 +   dev_set_drvdata(dev, phy_drd);
 +   phy_drd-dev = dev;
 +
 +   res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 +   phy_drd-reg_phy = devm_ioremap_resource(dev, res);
 +   if (IS_ERR(phy_drd-reg_phy)) {
 +   dev_err(dev, Failed to map register memory (phy)\n);


 devm_ioremap_resource() already prints an error message.
Ok, will remove this message.


 Best regards,
 Tomasz
 --
 To unsubscribe from this list: send the line unsubscribe linux-usb in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  

Re: [PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-09 Thread Tomasz Figa

On 09.04.2014 13:49, Vivek Gautam wrote:

Hi,


On Wed, Apr 9, 2014 at 4:36 PM, Tomasz Figa t.f...@samsung.com wrote:

Hi Vivek,

Please see my comments inline.


On 08.04.2014 16:36, Vivek Gautam wrote:


Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
The new driver uses the generic PHY framework and will interact
with DWC3 controller present on Exynos5 series of SoCs.
Thereby, removing old phy-samsung-usb3 driver and related code
used untill now which was based on usb/phy framework.

Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
---
   .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
   drivers/phy/Kconfig|   11 +
   drivers/phy/Makefile   |1 +
   drivers/phy/phy-exynos5-usbdrd.c   |  668

   4 files changed, 722 insertions(+)
   create mode 100644 drivers/phy/phy-exynos5-usbdrd.c



[snip]



+   Additional clock required for Exynos5420:
+   - usb30_sclk_100m: Additional special clock used for PHY operation
+  depicted as 'sclk_usbphy30' in CMU of
Exynos5420.



Are you sure this isn't simply a gate for the ref clock, as it can be found
on another SoC that is not upstream yet? I don't have documentation for
Exynos 5420 so I can't tell, but I'd like to ask you to recheck this.



From what i can see in the manual :

sclk_usbphy30 is derived from OSCCLK.
It is coming from a MUX (default input line to this is OSCCLK)  and
then through a DIV
there's this gate.

   {OSCCLK  + other sources} ---[MUX] --- [DIV] -- [GATE for
sclk_usbphy30]

the {rate of sclk_usbphy30} == OSCCLK

However the 'ref' clock that we have been using is the actual oscillator clock.
And on SoC Exynos5250, we don't have any such gate (sclk_usbphy30).
So should this mean that ref clock and sclk_usbphy30 are still be controlled by
two different gates ?



Is there maybe a diagram of PHY input clocks in the datasheet, like for 
USB 2.0 PHY in Exynos4210/4412/5250 datasheets in the chapter about 
USB2.0 Device? Something like:


 
||
| ___|
XusbXTI |   Phy_fsel[2:0]|  ___  |
   ___[X]___|| __|_|___|\__|_|
  | |   _v___ |  _   ^ |   |/  | |
_   |  | || | |  | |  ___  | |
 ___|  | || | |  | | |   |_|_|
|___|   |  | X 0 ||_| PLL |__|_|_|CLK|_|_|
_   |  | |  | || |DIV|_|_|
  |___[X]   |  |_| 12   |_|480 | |___| | |
|  MHz MHz |Digital| |
XusbXTO |   USB PHY|___| |
||


Best regards,
Tomasz
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH V4 1/5] phy: Add new Exynos5 USB 3.0 PHY driver

2014-04-08 Thread Vivek Gautam
Add a new driver for the USB 3.0 PHY on Exynos5 series of SoCs.
The new driver uses the generic PHY framework and will interact
with DWC3 controller present on Exynos5 series of SoCs.
Thereby, removing old phy-samsung-usb3 driver and related code
used untill now which was based on usb/phy framework.

Signed-off-by: Vivek Gautam gautam.vi...@samsung.com
---
 .../devicetree/bindings/phy/samsung-phy.txt|   42 ++
 drivers/phy/Kconfig|   11 +
 drivers/phy/Makefile   |1 +
 drivers/phy/phy-exynos5-usbdrd.c   |  668 
 4 files changed, 722 insertions(+)
 create mode 100644 drivers/phy/phy-exynos5-usbdrd.c

diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt 
b/Documentation/devicetree/bindings/phy/samsung-phy.txt
index 28f9edb..6d99ba9 100644
--- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
+++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
@@ -74,3 +74,45 @@ phy-consumer@1234 {
 
 Refer to DT bindings documentation of particular PHY consumer devices for more
 information about required PHYs and the way of specification.
+
+Samsung Exynos5 SoC series USB DRD PHY controller
+--
+
+Required properties:
+- compatible : Should be set to one of the following supported values:
+   - samsung,exynos5250-usbdrd-phy - for exynos5250 SoC,
+   - samsung,exynos5420-usbdrd-phy - for exynos5420 SoC.
+- reg : Register offset and length of USB DRD PHY register set;
+- clocks: Clock IDs array as required by the controller
+- clock-names: names of clocks correseponding to IDs in the clock property;
+  Required clocks:
+   - phy: main PHY clock (same as USB DRD controller i.e. DWC3 IP clock),
+  used for register access.
+   - ref: PHY's reference clock (usually crystal clock), associated by
+  phy name, used to determine bit values for clock settings
+  register.
+   Additional clock required for Exynos5420:
+   - usb30_sclk_100m: Additional special clock used for PHY operation
+  depicted as 'sclk_usbphy30' in CMU of Exynos5420.
+- samsung,syscon-phandle: phandle for syscon interface, which is used to
+ control pmu registers for power isolation.
+- samsung,pmu-offset: phy power control register offset to 
pmu-system-controller
+ base.
+- #phy-cells : from the generic PHY bindings, must be 1;
+
+For samsung,exynos5250-usbdrd-phy and samsung,exynos5420-usbdrd-phy
+compatible PHYs, the second cell in the PHY specifier identifies the
+PHY id, which is interpreted as follows:
+  0 - UTMI+ type phy,
+  1 - PIPE3 type phy,
+
+Example:
+   usb3_phy: usbphy@1210 {
+   compatible = samsung,exynos5250-usbdrd-phy;
+   reg = 0x1210 0x100;
+   clocks = clock 286, clock 1;
+   clock-names = phy, usb3phy_refclk;
+   samsung,syscon-phandle = pmu_syscon;
+   samsung,pmu-offset = 0x704;
+   #phy-cells = 1;
+   };
diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
index 8d3c49c..d955a05 100644
--- a/drivers/phy/Kconfig
+++ b/drivers/phy/Kconfig
@@ -166,4 +166,15 @@ config PHY_XGENE
help
  This option enables support for APM X-Gene SoC multi-purpose PHY.
 
+config PHY_EXYNOS5_USBDRD
+   tristate Exynos5 SoC series USB DRD PHY driver
+   depends on ARCH_EXYNOS5  OF
+   depends on HAS_IOMEM
+   select GENERIC_PHY
+   select MFD_SYSCON
+   help
+ Enable USB DRD PHY support for Exynos 5 SoC series.
+ This driver provides PHY interface for USB 3.0 DRD controller
+ present on Exynos5 SoC series.
+
 endmenu
diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile
index 2faf78e..31baa0c 100644
--- a/drivers/phy/Makefile
+++ b/drivers/phy/Makefile
@@ -18,3 +18,4 @@ obj-$(CONFIG_PHY_EXYNOS4210_USB2) += phy-exynos4210-usb2.o
 obj-$(CONFIG_PHY_EXYNOS4X12_USB2)  += phy-exynos4x12-usb2.o
 obj-$(CONFIG_PHY_EXYNOS5250_USB2)  += phy-exynos5250-usb2.o
 obj-$(CONFIG_PHY_XGENE)+= phy-xgene.o
+obj-$(CONFIG_PHY_EXYNOS5_USBDRD)   += phy-exynos5-usbdrd.o
diff --git a/drivers/phy/phy-exynos5-usbdrd.c b/drivers/phy/phy-exynos5-usbdrd.c
new file mode 100644
index 000..ff54a7c
--- /dev/null
+++ b/drivers/phy/phy-exynos5-usbdrd.c
@@ -0,0 +1,668 @@
+/*
+ * Samsung EXYNOS5 SoC series USB DRD PHY driver
+ *
+ * Phy provider for USB 3.0 DRD controller on Exynos5 SoC series
+ *
+ * Copyright (C) 2013 Samsung Electronics Co., Ltd.
+ * Author: Vivek Gautam gautam.vi...@samsung.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include linux/clk.h
+#include linux/delay.h
+#include linux/io.h