All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards
@ 2012-05-10 13:16 Lukasz Majewski
  2012-05-10 13:16 ` [PATCH RESEND 1/4] ARM: EXYNOS: Add usb otg phy control for EXYNOS4210 Lukasz Majewski
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Lukasz Majewski @ 2012-05-10 13:16 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: Marek Szyprowski, Lukasz Majewski, linux-samsung-soc,
	Kyungmin Park

This patch series adds S3C-HSOTG UDC support for Exynos4210 and S5PV210 based targets; namely
 Universal_C210, Nuri and GONI.

Tested HW:
- Exynos4210 NURI target rev.1
- Exynos4210 Universal_C210 target rev.0
- S5PV210 GONI target

Dependencies:
- usb:hsotg:samsung USB S3C-HSOTG driver fixes and code cleanup
  patches, which have been already pulled to usb for-next branch.

http://permalink.gmane.org/gmane.linux.usb.general/62101

Those patches are enabling this UDC driver on GONI, NURI and Universal_C210 targets

Joonyoung Shim (1):
  ARM: EXYNOS: Add s3c-hsotg device support for NURI board

Lukasz Majewski (3):
  ARM: EXYNOS: Add usb otg phy control for EXYNOS4210
  ARM: EXYNOS: Add s3c-hsotg device support for GONI board
  ARM: EXYNOS: Add s3c-hsotg device support for Universal C210 board

 arch/arm/mach-exynos/Kconfig                 |    3 +
 arch/arm/mach-exynos/include/mach/irqs.h     |    1 +
 arch/arm/mach-exynos/include/mach/map.h      |    4 +
 arch/arm/mach-exynos/include/mach/regs-pmu.h |    3 +
 arch/arm/mach-exynos/mach-nuri.c             |    9 ++-
 arch/arm/mach-exynos/mach-universal_c210.c   |   10 +++
 arch/arm/mach-exynos/setup-usb-phy.c         |   95 +++++++++++++++++++-------
 arch/arm/mach-s5pv210/Kconfig                |    1 +
 arch/arm/mach-s5pv210/mach-goni.c            |    5 ++
 9 files changed, 105 insertions(+), 26 deletions(-)

-- 
1.7.2.3

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH RESEND 1/4] ARM: EXYNOS: Add usb otg phy control for EXYNOS4210
  2012-05-10 13:16 [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards Lukasz Majewski
@ 2012-05-10 13:16 ` Lukasz Majewski
  2012-05-16  8:17   ` Kukjin Kim
  2012-05-10 13:16 ` [PATCH RESEND 2/4] ARM: EXYNOS: Add s3c-hsotg device support for GONI board Lukasz Majewski
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Lukasz Majewski @ 2012-05-10 13:16 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: Marek Szyprowski, Lukasz Majewski, linux-samsung-soc,
	Kyungmin Park, Joonyoung Shim

This patch supports to control usb otg phy of EXYNOS4210.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
[Rebased on the newest git/kgene/linux-samsung #for-next]
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
---
 arch/arm/mach-exynos/include/mach/irqs.h     |    1 +
 arch/arm/mach-exynos/include/mach/map.h      |    4 +
 arch/arm/mach-exynos/include/mach/regs-pmu.h |    3 +
 arch/arm/mach-exynos/setup-usb-phy.c         |   95 +++++++++++++++++++-------
 4 files changed, 78 insertions(+), 25 deletions(-)

diff --git a/arch/arm/mach-exynos/include/mach/irqs.h b/arch/arm/mach-exynos/include/mach/irqs.h
index 1161675..ddde8f3 100644
--- a/arch/arm/mach-exynos/include/mach/irqs.h
+++ b/arch/arm/mach-exynos/include/mach/irqs.h
@@ -196,6 +196,7 @@
 #define IRQ_IIC7			EXYNOS4_IRQ_IIC7
 
 #define IRQ_USB_HOST			EXYNOS4_IRQ_USB_HOST
+#define IRQ_OTG				EXYNOS4_IRQ_USB_HSOTG
 
 #define IRQ_HSMMC0			EXYNOS4_IRQ_HSMMC0
 #define IRQ_HSMMC1			EXYNOS4_IRQ_HSMMC1
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index 0e2292d..2196af2 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -168,6 +168,9 @@
 #define EXYNOS4_PA_HSMMC(x)		(0x12510000 + ((x) * 0x10000))
 #define EXYNOS4_PA_DWMCI		0x12550000
 
+#define EXYNOS4_PA_HSOTG		0x12480000
+#define EXYNOS4_PA_USB_HSPHY		0x125B0000
+
 #define EXYNOS4_PA_SATA			0x12560000
 #define EXYNOS4_PA_SATAPHY		0x125D0000
 #define EXYNOS4_PA_SATAPHY_CTRL		0x126B0000
@@ -224,6 +227,7 @@
 #define S3C_PA_SPI0			EXYNOS4_PA_SPI0
 #define S3C_PA_SPI1			EXYNOS4_PA_SPI1
 #define S3C_PA_SPI2			EXYNOS4_PA_SPI2
+#define S3C_PA_USB_HSOTG		EXYNOS4_PA_HSOTG
 
 #define S5P_PA_EHCI			EXYNOS4_PA_EHCI
 #define S5P_PA_FIMC0			EXYNOS4_PA_FIMC0
diff --git a/arch/arm/mach-exynos/include/mach/regs-pmu.h b/arch/arm/mach-exynos/include/mach/regs-pmu.h
index 4c53f38..d457d05 100644
--- a/arch/arm/mach-exynos/include/mach/regs-pmu.h
+++ b/arch/arm/mach-exynos/include/mach/regs-pmu.h
@@ -163,6 +163,9 @@
 #define S5P_CHECK_SLEEP				0x00000BAD
 
 /* Only for EXYNOS4210 */
+#define S5P_USBDEVICE_PHY_CONTROL	S5P_PMUREG(0x0704)
+#define S5P_USBDEVICE_PHY_ENABLE	(1 << 0)
+
 #define S5P_USBHOST_PHY_CONTROL		S5P_PMUREG(0x0708)
 #define S5P_USBHOST_PHY_ENABLE		(1 << 0)
 
diff --git a/arch/arm/mach-exynos/setup-usb-phy.c b/arch/arm/mach-exynos/setup-usb-phy.c
index 41743d2..6cf5d6a 100644
--- a/arch/arm/mach-exynos/setup-usb-phy.c
+++ b/arch/arm/mach-exynos/setup-usb-phy.c
@@ -26,11 +26,72 @@ static int exynos4_usb_host_phy_is_on(void)
 	return (readl(EXYNOS4_PHYPWR) & PHY1_STD_ANALOG_POWERDOWN) ? 0 : 1;
 }
 
-static int exynos4_usb_phy1_init(struct platform_device *pdev)
+static void exynos4_usb_phy_clkset(struct platform_device *pdev)
 {
-	struct clk *otg_clk;
 	struct clk *xusbxti_clk;
 	u32 phyclk;
+
+	/* set clock frequency for PLL */
+	phyclk = readl(EXYNOS4_PHYCLK) & ~CLKSEL_MASK;
+
+	xusbxti_clk = clk_get(&pdev->dev, "xusbxti");
+	if (xusbxti_clk && !IS_ERR(xusbxti_clk)) {
+		switch (clk_get_rate(xusbxti_clk)) {
+		case 12 * MHZ:
+			phyclk |= CLKSEL_12M;
+			break;
+		case 24 * MHZ:
+			phyclk |= CLKSEL_24M;
+			break;
+		default:
+		case 48 * MHZ:
+			/* default reference clock */
+			break;
+		}
+		clk_put(xusbxti_clk);
+	}
+
+	writel(phyclk, EXYNOS4_PHYCLK);
+}
+
+static int exynos4_usb_phy0_init(struct platform_device *pdev)
+{
+	u32 rstcon;
+
+	writel(readl(S5P_USBDEVICE_PHY_CONTROL) | S5P_USBDEVICE_PHY_ENABLE,
+			S5P_USBDEVICE_PHY_CONTROL);
+
+	exynos4_usb_phy_clkset(pdev);
+
+	/* set to normal PHY0 */
+	writel((readl(EXYNOS4_PHYPWR) & ~PHY0_NORMAL_MASK), EXYNOS4_PHYPWR);
+
+	/* reset PHY0 and Link */
+	rstcon = readl(EXYNOS4_RSTCON) | PHY0_SWRST_MASK;
+	writel(rstcon, EXYNOS4_RSTCON);
+	udelay(10);
+
+	rstcon &= ~PHY0_SWRST_MASK;
+	writel(rstcon, EXYNOS4_RSTCON);
+	udelay(80);
+
+	return 0;
+}
+
+static int exynos4_usb_phy0_exit(struct platform_device *pdev)
+{
+	writel((readl(EXYNOS4_PHYPWR) | PHY0_ANALOG_POWERDOWN |
+				PHY0_OTG_DISABLE), EXYNOS4_PHYPWR);
+
+	writel(readl(S5P_USBDEVICE_PHY_CONTROL) & ~S5P_USBDEVICE_PHY_ENABLE,
+			S5P_USBDEVICE_PHY_CONTROL);
+
+	return 0;
+}
+
+static int exynos4_usb_phy1_init(struct platform_device *pdev)
+{
+	struct clk *otg_clk;
 	u32 rstcon;
 	int err;
 
@@ -54,27 +115,7 @@ static int exynos4_usb_phy1_init(struct platform_device *pdev)
 	writel(readl(S5P_USBHOST_PHY_CONTROL) | S5P_USBHOST_PHY_ENABLE,
 			S5P_USBHOST_PHY_CONTROL);
 
-	/* set clock frequency for PLL */
-	phyclk = readl(EXYNOS4_PHYCLK) & ~CLKSEL_MASK;
-
-	xusbxti_clk = clk_get(&pdev->dev, "xusbxti");
-	if (xusbxti_clk && !IS_ERR(xusbxti_clk)) {
-		switch (clk_get_rate(xusbxti_clk)) {
-		case 12 * MHZ:
-			phyclk |= CLKSEL_12M;
-			break;
-		case 24 * MHZ:
-			phyclk |= CLKSEL_24M;
-			break;
-		default:
-		case 48 * MHZ:
-			/* default reference clock */
-			break;
-		}
-		clk_put(xusbxti_clk);
-	}
-
-	writel(phyclk, EXYNOS4_PHYCLK);
+	exynos4_usb_phy_clkset(pdev);
 
 	/* floating prevention logic: disable */
 	writel((readl(EXYNOS4_PHY1CON) | FPENABLEN), EXYNOS4_PHY1CON);
@@ -136,7 +177,9 @@ static int exynos4_usb_phy1_exit(struct platform_device *pdev)
 
 int s5p_usb_phy_init(struct platform_device *pdev, int type)
 {
-	if (type == S5P_USB_PHY_HOST)
+	if (type == S5P_USB_PHY_DEVICE)
+		return exynos4_usb_phy0_init(pdev);
+	else if (type == S5P_USB_PHY_HOST)
 		return exynos4_usb_phy1_init(pdev);
 
 	return -EINVAL;
@@ -144,7 +187,9 @@ int s5p_usb_phy_init(struct platform_device *pdev, int type)
 
 int s5p_usb_phy_exit(struct platform_device *pdev, int type)
 {
-	if (type == S5P_USB_PHY_HOST)
+	if (type == S5P_USB_PHY_DEVICE)
+		return exynos4_usb_phy0_exit(pdev);
+	else if (type == S5P_USB_PHY_HOST)
 		return exynos4_usb_phy1_exit(pdev);
 
 	return -EINVAL;
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH RESEND 2/4] ARM: EXYNOS: Add s3c-hsotg device support for GONI board
  2012-05-10 13:16 [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards Lukasz Majewski
  2012-05-10 13:16 ` [PATCH RESEND 1/4] ARM: EXYNOS: Add usb otg phy control for EXYNOS4210 Lukasz Majewski
@ 2012-05-10 13:16 ` Lukasz Majewski
  2012-05-10 13:16 ` [PATCH RESEND 3/4] ARM: EXYNOS: Add s3c-hsotg device support for NURI board Lukasz Majewski
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Lukasz Majewski @ 2012-05-10 13:16 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: Marek Szyprowski, Lukasz Majewski, linux-samsung-soc,
	Kyungmin Park

This patch adds hsotg device to the GONI board.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/mach-s5pv210/Kconfig     |    1 +
 arch/arm/mach-s5pv210/mach-goni.c |    5 +++++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index 29594fc..88e983b 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -85,6 +85,7 @@ config MACH_AQUILA
 	select S5P_DEV_ONENAND
 	select S5PV210_SETUP_FB_24BPP
 	select S5PV210_SETUP_SDHCI
+	select S5PV210_SETUP_USB_PHY
 	help
 	  Machine support for the Samsung Aquila target based on S5PC110 SoC
 
diff --git a/arch/arm/mach-s5pv210/mach-goni.c b/arch/arm/mach-s5pv210/mach-goni.c
index 3239566..5fac4e4 100644
--- a/arch/arm/mach-s5pv210/mach-goni.c
+++ b/arch/arm/mach-s5pv210/mach-goni.c
@@ -278,6 +278,9 @@ static void __init goni_tsp_init(void)
 	i2c2_devs[0].irq = gpio_to_irq(gpio);
 }
 
+/* USB OTG */
+static struct s3c_hsotg_plat goni_hsotg_pdata;
+
 static void goni_camera_init(void)
 {
 	s5pv210_fimc_setup_gpio(S5P_CAMPORT_A);
@@ -941,6 +944,8 @@ static void __init goni_machine_init(void)
 	s3c_set_platdata(&goni_fimc_md_platdata, sizeof(goni_fimc_md_platdata),
 			 &s5p_device_fimc_md);
 
+	s3c_hsotg_set_platdata(&goni_hsotg_pdata);
+
 	goni_camera_init();
 
 	/* SPI */
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH RESEND 3/4] ARM: EXYNOS: Add s3c-hsotg device support for NURI board
  2012-05-10 13:16 [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards Lukasz Majewski
  2012-05-10 13:16 ` [PATCH RESEND 1/4] ARM: EXYNOS: Add usb otg phy control for EXYNOS4210 Lukasz Majewski
  2012-05-10 13:16 ` [PATCH RESEND 2/4] ARM: EXYNOS: Add s3c-hsotg device support for GONI board Lukasz Majewski
@ 2012-05-10 13:16 ` Lukasz Majewski
  2012-05-13  1:07   ` Kukjin Kim
  2012-05-10 13:16 ` [PATCH RESEND 4/4] ARM: EXYNOS: Add s3c-hsotg device support for Universal C210 board Lukasz Majewski
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Lukasz Majewski @ 2012-05-10 13:16 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: Marek Szyprowski, Lukasz Majewski, linux-samsung-soc,
	Kyungmin Park, Joonyoung Shim

From: Joonyoung Shim <jy0922.shim@samsung.com>

This patch adds hsotg device to the NURI board.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
[Rebased on the newest git/kgene/linux-samsung #for-next]
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
---
 arch/arm/mach-exynos/Kconfig     |    1 +
 arch/arm/mach-exynos/mach-nuri.c |    9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 2c35fd4..5e64728 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -287,6 +287,7 @@ config MACH_NURI
 	select S5P_DEV_MFC
 	select S5P_DEV_USB_EHCI
 	select S5P_SETUP_MIPIPHY
+	select S3C_DEV_USB_HSOTG
 	select EXYNOS4_DEV_DMA
 	select EXYNOS4_SETUP_FIMC
 	select EXYNOS4_SETUP_FIMD0
diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c
index 021dc68..4402aad 100644
--- a/arch/arm/mach-exynos/mach-nuri.c
+++ b/arch/arm/mach-exynos/mach-nuri.c
@@ -348,6 +348,7 @@ static struct regulator_consumer_supply __initdata max8997_ldo1_[] = {
 	REGULATOR_SUPPLY("vdd", "s5p-adc"), /* Used by CPU's ADC drv */
 };
 static struct regulator_consumer_supply __initdata max8997_ldo3_[] = {
+	REGULATOR_SUPPLY("vusb_d", "s3c-hsotg"), /* USB */
 	REGULATOR_SUPPLY("vdd11", "s5p-mipi-csis.0"), /* MIPI */
 };
 static struct regulator_consumer_supply __initdata max8997_ldo4_[] = {
@@ -363,7 +364,7 @@ static struct regulator_consumer_supply __initdata max8997_ldo7_[] = {
 	REGULATOR_SUPPLY("dig_18", "0-001f"), /* HCD803 */
 };
 static struct regulator_consumer_supply __initdata max8997_ldo8_[] = {
-	REGULATOR_SUPPLY("vusb_d", NULL), /* Used by CPU */
+	REGULATOR_SUPPLY("vusb_a", "s3c-hsotg"), /* USB */
 	REGULATOR_SUPPLY("vdac", NULL), /* Used by CPU */
 };
 static struct regulator_consumer_supply __initdata max8997_ldo11_[] = {
@@ -819,6 +820,7 @@ static struct regulator_init_data __initdata max8997_esafeout1_data = {
 	.constraints	= {
 		.name		= "SAFEOUT1",
 		.valid_ops_mask	= REGULATOR_CHANGE_STATUS,
+		.always_on	= 1,
 		.state_mem	= {
 			.disabled	= 1,
 		},
@@ -1076,6 +1078,9 @@ static void __init nuri_ehci_init(void)
 	s5p_ehci_set_platdata(pdata);
 }
 
+/* USB OTG */
+static struct s3c_hsotg_plat nuri_hsotg_pdata;
+
 /* CAMERA */
 static struct regulator_consumer_supply cam_vt_cam15_supply =
 	REGULATOR_SUPPLY("vdd_core", "6-003c");
@@ -1288,6 +1293,7 @@ static struct platform_device *nuri_devices[] __initdata = {
 	&s5p_device_mfc_l,
 	&s5p_device_mfc_r,
 	&s5p_device_fimc_md,
+	&s3c_device_usb_hsotg,
 
 	/* NURI Devices */
 	&nuri_gpio_keys,
@@ -1336,6 +1342,7 @@ static void __init nuri_machine_init(void)
 	nuri_camera_init();
 
 	nuri_ehci_init();
+	s3c_hsotg_set_platdata(&nuri_hsotg_pdata);
 
 	/* Last */
 	platform_add_devices(nuri_devices, ARRAY_SIZE(nuri_devices));
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH RESEND 4/4] ARM: EXYNOS: Add s3c-hsotg device support for Universal C210 board
  2012-05-10 13:16 [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards Lukasz Majewski
                   ` (2 preceding siblings ...)
  2012-05-10 13:16 ` [PATCH RESEND 3/4] ARM: EXYNOS: Add s3c-hsotg device support for NURI board Lukasz Majewski
@ 2012-05-10 13:16 ` Lukasz Majewski
  2012-05-12 23:53 ` [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards Kukjin Kim
  2012-05-17  3:27 ` Tushar Behera
  5 siblings, 0 replies; 13+ messages in thread
From: Lukasz Majewski @ 2012-05-10 13:16 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: Marek Szyprowski, Lukasz Majewski, linux-samsung-soc,
	Kyungmin Park

This patch adds platform data for using S3C-HSOTG driver at
Universal_C210 target.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
 arch/arm/mach-exynos/Kconfig               |    2 ++
 arch/arm/mach-exynos/mach-universal_c210.c |   10 ++++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 5e64728..56d0e7e 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -246,6 +246,7 @@ config MACH_UNIVERSAL_C210
 	select S3C_DEV_I2C1
 	select S3C_DEV_I2C3
 	select S3C_DEV_I2C5
+	select S3C_DEV_USB_HSOTG
 	select S5P_DEV_I2C_HDMIPHY
 	select S5P_DEV_MFC
 	select S5P_DEV_ONENAND
@@ -259,6 +260,7 @@ config MACH_UNIVERSAL_C210
 	select EXYNOS4_SETUP_SDHCI
 	select EXYNOS4_SETUP_FIMC
 	select S5P_SETUP_MIPIPHY
+	select EXYNOS4_SETUP_USB_PHY
 	help
 	  Machine support for Samsung Mobile Universal S5PC210 Reference
 	  Board.
diff --git a/arch/arm/mach-exynos/mach-universal_c210.c b/arch/arm/mach-exynos/mach-universal_c210.c
index add55b4..9781669 100644
--- a/arch/arm/mach-exynos/mach-universal_c210.c
+++ b/arch/arm/mach-exynos/mach-universal_c210.c
@@ -204,6 +204,7 @@ static struct regulator_init_data lp3974_ldo2_data = {
 };
 
 static struct regulator_consumer_supply lp3974_ldo3_consumer[] = {
+	REGULATOR_SUPPLY("vusb_a", "s3c-hsotg"),
 	REGULATOR_SUPPLY("vdd", "exynos4-hdmi"),
 	REGULATOR_SUPPLY("vdd_pll", "exynos4-hdmi"),
 	REGULATOR_SUPPLY("vdd11", "s5p-mipi-csis.0"),
@@ -289,6 +290,7 @@ static struct regulator_init_data lp3974_ldo7_data = {
 };
 
 static struct regulator_consumer_supply lp3974_ldo8_consumer[] = {
+	REGULATOR_SUPPLY("vusb_d", "s3c-hsotg"),
 	REGULATOR_SUPPLY("vdd33a_dac", "s5p-sdo"),
 };
 
@@ -485,7 +487,10 @@ static struct regulator_init_data lp3974_vichg_data = {
 static struct regulator_init_data lp3974_esafeout1_data = {
 	.constraints	= {
 		.name		= "SAFEOUT1",
+		.min_uV		= 4800000,
+		.max_uV		= 4800000,
 		.valid_ops_mask	= REGULATOR_CHANGE_STATUS,
+		.always_on	= 1,
 		.state_mem	= {
 			.enabled	= 1,
 		},
@@ -991,6 +996,9 @@ static struct gpio universal_camera_gpios[] = {
 	{ GPIO_CAM_VGA_NSTBY,	GPIOF_OUT_INIT_LOW,  "CAM_VGA_NSTBY" },
 };
 
+/* USB OTG */
+static struct s3c_hsotg_plat universal_hsotg_pdata;
+
 static void __init universal_camera_init(void)
 {
 	s3c_set_platdata(&mipi_csis_platdata, sizeof(mipi_csis_platdata),
@@ -1046,6 +1054,7 @@ static struct platform_device *universal_devices[] __initdata = {
 	&s5p_device_onenand,
 	&s5p_device_fimd0,
 	&s5p_device_jpeg,
+	&s3c_device_usb_hsotg,
 	&s5p_device_mfc,
 	&s5p_device_mfc_l,
 	&s5p_device_mfc_r,
@@ -1098,6 +1107,7 @@ static void __init universal_machine_init(void)
 	i2c_register_board_info(I2C_GPIO_BUS_12, i2c_gpio12_devs,
 			ARRAY_SIZE(i2c_gpio12_devs));
 
+	s3c_hsotg_set_platdata(&universal_hsotg_pdata);
 	universal_camera_init();
 
 	/* Last */
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH RESEND 3/4] ARM: EXYNOS: Add s3c-hsotg device support for NURI board
  2012-05-10 16:29 Lukasz Majewski
@ 2012-05-10 16:29 ` Lukasz Majewski
  0 siblings, 0 replies; 13+ messages in thread
From: Lukasz Majewski @ 2012-05-10 16:29 UTC (permalink / raw)
  To: linux-arm-kernel

From: Joonyoung Shim <jy0922.shim@samsung.com>

This patch adds hsotg device to the NURI board.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
[Rebased on the newest git/kgene/linux-samsung #for-next]
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
---
 arch/arm/mach-exynos/Kconfig     |    1 +
 arch/arm/mach-exynos/mach-nuri.c |    9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 2c35fd4..5e64728 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -287,6 +287,7 @@ config MACH_NURI
 	select S5P_DEV_MFC
 	select S5P_DEV_USB_EHCI
 	select S5P_SETUP_MIPIPHY
+	select S3C_DEV_USB_HSOTG
 	select EXYNOS4_DEV_DMA
 	select EXYNOS4_SETUP_FIMC
 	select EXYNOS4_SETUP_FIMD0
diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c
index 021dc68..4402aad 100644
--- a/arch/arm/mach-exynos/mach-nuri.c
+++ b/arch/arm/mach-exynos/mach-nuri.c
@@ -348,6 +348,7 @@ static struct regulator_consumer_supply __initdata max8997_ldo1_[] = {
 	REGULATOR_SUPPLY("vdd", "s5p-adc"), /* Used by CPU's ADC drv */
 };
 static struct regulator_consumer_supply __initdata max8997_ldo3_[] = {
+	REGULATOR_SUPPLY("vusb_d", "s3c-hsotg"), /* USB */
 	REGULATOR_SUPPLY("vdd11", "s5p-mipi-csis.0"), /* MIPI */
 };
 static struct regulator_consumer_supply __initdata max8997_ldo4_[] = {
@@ -363,7 +364,7 @@ static struct regulator_consumer_supply __initdata max8997_ldo7_[] = {
 	REGULATOR_SUPPLY("dig_18", "0-001f"), /* HCD803 */
 };
 static struct regulator_consumer_supply __initdata max8997_ldo8_[] = {
-	REGULATOR_SUPPLY("vusb_d", NULL), /* Used by CPU */
+	REGULATOR_SUPPLY("vusb_a", "s3c-hsotg"), /* USB */
 	REGULATOR_SUPPLY("vdac", NULL), /* Used by CPU */
 };
 static struct regulator_consumer_supply __initdata max8997_ldo11_[] = {
@@ -819,6 +820,7 @@ static struct regulator_init_data __initdata max8997_esafeout1_data = {
 	.constraints	= {
 		.name		= "SAFEOUT1",
 		.valid_ops_mask	= REGULATOR_CHANGE_STATUS,
+		.always_on	= 1,
 		.state_mem	= {
 			.disabled	= 1,
 		},
@@ -1076,6 +1078,9 @@ static void __init nuri_ehci_init(void)
 	s5p_ehci_set_platdata(pdata);
 }
 
+/* USB OTG */
+static struct s3c_hsotg_plat nuri_hsotg_pdata;
+
 /* CAMERA */
 static struct regulator_consumer_supply cam_vt_cam15_supply =
 	REGULATOR_SUPPLY("vdd_core", "6-003c");
@@ -1288,6 +1293,7 @@ static struct platform_device *nuri_devices[] __initdata = {
 	&s5p_device_mfc_l,
 	&s5p_device_mfc_r,
 	&s5p_device_fimc_md,
+	&s3c_device_usb_hsotg,
 
 	/* NURI Devices */
 	&nuri_gpio_keys,
@@ -1336,6 +1342,7 @@ static void __init nuri_machine_init(void)
 	nuri_camera_init();
 
 	nuri_ehci_init();
+	s3c_hsotg_set_platdata(&nuri_hsotg_pdata);
 
 	/* Last */
 	platform_add_devices(nuri_devices, ARRAY_SIZE(nuri_devices));
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards
  2012-05-10 13:16 [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards Lukasz Majewski
                   ` (3 preceding siblings ...)
  2012-05-10 13:16 ` [PATCH RESEND 4/4] ARM: EXYNOS: Add s3c-hsotg device support for Universal C210 board Lukasz Majewski
@ 2012-05-12 23:53 ` Kukjin Kim
  2012-05-17  3:27 ` Tushar Behera
  5 siblings, 0 replies; 13+ messages in thread
From: Kukjin Kim @ 2012-05-12 23:53 UTC (permalink / raw)
  To: Lukasz Majewski
  Cc: Kukjin Kim, Marek Szyprowski, linux-samsung-soc, Kyungmin Park

On 05/10/12 22:16, Lukasz Majewski wrote:
> This patch series adds S3C-HSOTG UDC support for Exynos4210 and S5PV210 based targets; namely
>   Universal_C210, Nuri and GONI.
>
> Tested HW:
> - Exynos4210 NURI target rev.1
> - Exynos4210 Universal_C210 target rev.0
> - S5PV210 GONI target
>
> Dependencies:
> - usb:hsotg:samsung USB S3C-HSOTG driver fixes and code cleanup
>    patches, which have been already pulled to usb for-next branch.
>
> http://permalink.gmane.org/gmane.linux.usb.general/62101
>
> Those patches are enabling this UDC driver on GONI, NURI and Universal_C210 targets
>
> Joonyoung Shim (1):
>    ARM: EXYNOS: Add s3c-hsotg device support for NURI board
>
> Lukasz Majewski (3):
>    ARM: EXYNOS: Add usb otg phy control for EXYNOS4210
>    ARM: EXYNOS: Add s3c-hsotg device support for GONI board
>    ARM: EXYNOS: Add s3c-hsotg device support for Universal C210 board
>
>   arch/arm/mach-exynos/Kconfig                 |    3 +
>   arch/arm/mach-exynos/include/mach/irqs.h     |    1 +
>   arch/arm/mach-exynos/include/mach/map.h      |    4 +
>   arch/arm/mach-exynos/include/mach/regs-pmu.h |    3 +
>   arch/arm/mach-exynos/mach-nuri.c             |    9 ++-
>   arch/arm/mach-exynos/mach-universal_c210.c   |   10 +++
>   arch/arm/mach-exynos/setup-usb-phy.c         |   95 +++++++++++++++++++-------
>   arch/arm/mach-s5pv210/Kconfig                |    1 +
>   arch/arm/mach-s5pv210/mach-goni.c            |    5 ++
>   9 files changed, 105 insertions(+), 26 deletions(-)
>
Applied,

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH RESEND 3/4] ARM: EXYNOS: Add s3c-hsotg device support for NURI board
  2012-05-10 13:16 ` [PATCH RESEND 3/4] ARM: EXYNOS: Add s3c-hsotg device support for NURI board Lukasz Majewski
@ 2012-05-13  1:07   ` Kukjin Kim
  2012-05-14  8:48     ` Lukasz Majewski
  0 siblings, 1 reply; 13+ messages in thread
From: Kukjin Kim @ 2012-05-13  1:07 UTC (permalink / raw)
  To: Lukasz Majewski
  Cc: Kukjin Kim, Marek Szyprowski, linux-samsung-soc, Kyungmin Park,
	Joonyoung Shim

On 05/10/12 22:16, Lukasz Majewski wrote:
> From: Joonyoung Shim<jy0922.shim@samsung.com>
>
> This patch adds hsotg device to the NURI board.
>
> Signed-off-by: Joonyoung Shim<jy0922.shim@samsung.com>
> Signed-off-by: Kyungmin Park<kyungmin.park@samsung.com>
> [Rebased on the newest git/kgene/linux-samsung #for-next]
> Signed-off-by: Lukasz Majewski<l.majewski@samsung.com>
> ---
>   arch/arm/mach-exynos/Kconfig     |    1 +
>   arch/arm/mach-exynos/mach-nuri.c |    9 ++++++++-
>   2 files changed, 9 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 2c35fd4..5e64728 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -287,6 +287,7 @@ config MACH_NURI
>   	select S5P_DEV_MFC
>   	select S5P_DEV_USB_EHCI
>   	select S5P_SETUP_MIPIPHY
> +	select S3C_DEV_USB_HSOTG
>   	select EXYNOS4_DEV_DMA
>   	select EXYNOS4_SETUP_FIMC
>   	select EXYNOS4_SETUP_FIMD0
> diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c
> index 021dc68..4402aad 100644
> --- a/arch/arm/mach-exynos/mach-nuri.c
> +++ b/arch/arm/mach-exynos/mach-nuri.c
> @@ -348,6 +348,7 @@ static struct regulator_consumer_supply __initdata max8997_ldo1_[] = {
>   	REGULATOR_SUPPLY("vdd", "s5p-adc"), /* Used by CPU's ADC drv */
>   };
>   static struct regulator_consumer_supply __initdata max8997_ldo3_[] = {
> +	REGULATOR_SUPPLY("vusb_d", "s3c-hsotg"), /* USB */
>   	REGULATOR_SUPPLY("vdd11", "s5p-mipi-csis.0"), /* MIPI */
>   };
>   static struct regulator_consumer_supply __initdata max8997_ldo4_[] = {
> @@ -363,7 +364,7 @@ static struct regulator_consumer_supply __initdata max8997_ldo7_[] = {
>   	REGULATOR_SUPPLY("dig_18", "0-001f"), /* HCD803 */
>   };
>   static struct regulator_consumer_supply __initdata max8997_ldo8_[] = {
> -	REGULATOR_SUPPLY("vusb_d", NULL), /* Used by CPU */
> +	REGULATOR_SUPPLY("vusb_a", "s3c-hsotg"), /* USB */
>   	REGULATOR_SUPPLY("vdac", NULL), /* Used by CPU */
>   };
>   static struct regulator_consumer_supply __initdata max8997_ldo11_[] = {
> @@ -819,6 +820,7 @@ static struct regulator_init_data __initdata max8997_esafeout1_data = {
>   	.constraints	= {
>   		.name		= "SAFEOUT1",
>   		.valid_ops_mask	= REGULATOR_CHANGE_STATUS,
> +		.always_on	= 1,
>   		.state_mem	= {
>   			.disabled	= 1,
>   		},
> @@ -1076,6 +1078,9 @@ static void __init nuri_ehci_init(void)
>   	s5p_ehci_set_platdata(pdata);
>   }
>
> +/* USB OTG */
> +static struct s3c_hsotg_plat nuri_hsotg_pdata;
> +
>   /* CAMERA */
>   static struct regulator_consumer_supply cam_vt_cam15_supply =
>   	REGULATOR_SUPPLY("vdd_core", "6-003c");
> @@ -1288,6 +1293,7 @@ static struct platform_device *nuri_devices[] __initdata = {
>   	&s5p_device_mfc_l,
>   	&s5p_device_mfc_r,
>   	&s5p_device_fimc_md,
> +	&s3c_device_usb_hsotg,
>
>   	/* NURI Devices */
>   	&nuri_gpio_keys,
> @@ -1336,6 +1342,7 @@ static void __init nuri_machine_init(void)
>   	nuri_camera_init();
>
>   	nuri_ehci_init();
> +	s3c_hsotg_set_platdata(&nuri_hsotg_pdata);
>
>   	/* Last */
>   	platform_add_devices(nuri_devices, ARRAY_SIZE(nuri_devices));

Oops, happens build error...

arch/arm/mach-s5pv210/mach-goni.c: In function 'goni_machine_init':
arch/arm/mach-s5pv210/mach-goni.c:947: error: implicit declaration of 
function 's3c_hsotg_set_platdata'

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH RESEND 3/4] ARM: EXYNOS: Add s3c-hsotg device support for NURI board
  2012-05-13  1:07   ` Kukjin Kim
@ 2012-05-14  8:48     ` Lukasz Majewski
  2012-05-14 14:01       ` Kukjin Kim
  0 siblings, 1 reply; 13+ messages in thread
From: Lukasz Majewski @ 2012-05-14  8:48 UTC (permalink / raw)
  To: Kukjin Kim; +Cc: Marek Szyprowski, linux-samsung-soc, Kyungmin Park

Hi Kukjin,

> Oops, happens build error...
> 
> arch/arm/mach-s5pv210/mach-goni.c: In function 'goni_machine_init':
> arch/arm/mach-s5pv210/mach-goni.c:947: error: implicit declaration of 
> function 's3c_hsotg_set_platdata'

Thanks for applying patches.

Regarding the build error:

After applying following patches on top of yours for next
(linux-samsung/for-next) the problem with build error doesn't appear
anymore.

Link to USB HSOTG patch series:

http://permalink.gmane.org/gmane.linux.usb.general/62101
"usb:hsotg:samsung USB S3C-HSOTG driver fixes and code cleanup"

Moreover those patches have been already applied to Greg-KH's usb-next
branch an will be released with 3.5 kernel.

-- 
Best regards,

Lukasz Majewski

Samsung Poland R&D Center | Linux Platform Group

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH RESEND 3/4] ARM: EXYNOS: Add s3c-hsotg device support for NURI board
  2012-05-14  8:48     ` Lukasz Majewski
@ 2012-05-14 14:01       ` Kukjin Kim
  0 siblings, 0 replies; 13+ messages in thread
From: Kukjin Kim @ 2012-05-14 14:01 UTC (permalink / raw)
  To: Lukasz Majewski
  Cc: Kukjin Kim, Marek Szyprowski, linux-samsung-soc, Kyungmin Park

On 05/14/12 17:48, Lukasz Majewski wrote:
> Hi Kukjin,
>
>> Oops, happens build error...
>>
>> arch/arm/mach-s5pv210/mach-goni.c: In function 'goni_machine_init':
>> arch/arm/mach-s5pv210/mach-goni.c:947: error: implicit declaration of
>> function 's3c_hsotg_set_platdata'
>
> Thanks for applying patches.
>
> Regarding the build error:
>
> After applying following patches on top of yours for next
> (linux-samsung/for-next) the problem with build error doesn't appear
> anymore.
>
Yes, I know why the build error happens and I can't apply them which are 
already in usb tree in my tree now. I'm thinking this series should be 
sent to upstream via usb tree together so if required, I will ask Greg 
and Felipe to do it.

> Link to USB HSOTG patch series:
>
> http://permalink.gmane.org/gmane.linux.usb.general/62101
> "usb:hsotg:samsung USB S3C-HSOTG driver fixes and code cleanup"
>
> Moreover those patches have been already applied to Greg-KH's usb-next
> branch an will be released with 3.5 kernel.
>
Yeah, I know. But the problem is that if arm-soc tree is merged before 
usb tree, same build error will be happened in mainline so I was 
thinking how we can avoid that. If your effort is required, let you know.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: [PATCH RESEND 1/4] ARM: EXYNOS: Add usb otg phy control for EXYNOS4210
  2012-05-10 13:16 ` [PATCH RESEND 1/4] ARM: EXYNOS: Add usb otg phy control for EXYNOS4210 Lukasz Majewski
@ 2012-05-16  8:17   ` Kukjin Kim
  2012-05-16  9:36     ` Lukasz Majewski
  0 siblings, 1 reply; 13+ messages in thread
From: Kukjin Kim @ 2012-05-16  8:17 UTC (permalink / raw)
  To: 'Lukasz Majewski'
  Cc: 'Marek Szyprowski', linux-samsung-soc,
	'Kyungmin Park', 'Joonyoung Shim',
	'Yulgon Kim'

Lukasz Majewski wrote:
> 
> This patch supports to control usb otg phy of EXYNOS4210.
> 
> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> [Rebased on the newest git/kgene/linux-samsung #for-next]
> Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
> ---
>  arch/arm/mach-exynos/include/mach/irqs.h     |    1 +
>  arch/arm/mach-exynos/include/mach/map.h      |    4 +
>  arch/arm/mach-exynos/include/mach/regs-pmu.h |    3 +
>  arch/arm/mach-exynos/setup-usb-phy.c         |   95
+++++++++++++++++++-----
> --
>  4 files changed, 78 insertions(+), 25 deletions(-)
> 

[...]

Hi Lukasz,

I have small comments on this.

> +static int exynos4_usb_phy0_init(struct platform_device *pdev)
> +{
> +	u32 rstcon;
> +
> +	writel(readl(S5P_USBDEVICE_PHY_CONTROL) | S5P_USBDEVICE_PHY_ENABLE,
> +			S5P_USBDEVICE_PHY_CONTROL);
> +
> +	exynos4_usb_phy_clkset(pdev);
> +
> +	/* set to normal PHY0 */
> +	writel((readl(EXYNOS4_PHYPWR) & ~PHY0_NORMAL_MASK), EXYNOS4_PHYPWR);
> +
> +	/* reset PHY0 and Link */
> +	rstcon = readl(EXYNOS4_RSTCON) | PHY0_SWRST_MASK;
> +	writel(rstcon, EXYNOS4_RSTCON);
> +	udelay(10);
> +
> +	rstcon &= ~PHY0_SWRST_MASK;
> +	writel(rstcon, EXYNOS4_RSTCON);
> +	udelay(80);

Do we _really_ need above udelay(80)?

As I know, we only need it in the phy1_init() for EHCI and we don't need it
here.

[...]

>  int s5p_usb_phy_init(struct platform_device *pdev, int type)
>  {
> -	if (type == S5P_USB_PHY_HOST)
> +	if (type == S5P_USB_PHY_DEVICE)
> +		return exynos4_usb_phy0_init(pdev);

I think, this should be exynos4210_usb_phy0_init(pdev), because this is
available on only exynos4210 not exynos4x12 and exynos5.

> +	else if (type == S5P_USB_PHY_HOST)
>  		return exynos4_usb_phy1_init(pdev);

Same as above.

> 
>  	return -EINVAL;
> @@ -144,7 +187,9 @@ int s5p_usb_phy_init(struct platform_device *pdev, int
> type)
> 
>  int s5p_usb_phy_exit(struct platform_device *pdev, int type)
>  {
> -	if (type == S5P_USB_PHY_HOST)
> +	if (type == S5P_USB_PHY_DEVICE)
> +		return exynos4_usb_phy0_exit(pdev);

Same as above.

> +	else if (type == S5P_USB_PHY_HOST)
>  		return exynos4_usb_phy1_exit(pdev);

Same as above.

If you're ok on my comments, could you please update it as soon as possible
for v3.5?

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH RESEND 1/4] ARM: EXYNOS: Add usb otg phy control for EXYNOS4210
  2012-05-16  8:17   ` Kukjin Kim
@ 2012-05-16  9:36     ` Lukasz Majewski
  0 siblings, 0 replies; 13+ messages in thread
From: Lukasz Majewski @ 2012-05-16  9:36 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: 'Marek Szyprowski', linux-samsung-soc,
	'Kyungmin Park', 'Joonyoung Shim',
	'Yulgon Kim'

Hi Kukjin,

> Lukasz Majewski wrote:
> > 
> > This patch supports to control usb otg phy of EXYNOS4210.
> > 
> > Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > [Rebased on the newest git/kgene/linux-samsung #for-next]
> > Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
> > ---
> >  arch/arm/mach-exynos/include/mach/irqs.h     |    1 +
> >  arch/arm/mach-exynos/include/mach/map.h      |    4 +
> >  arch/arm/mach-exynos/include/mach/regs-pmu.h |    3 +
> >  arch/arm/mach-exynos/setup-usb-phy.c         |   95
> +++++++++++++++++++-----
> > --
> >  4 files changed, 78 insertions(+), 25 deletions(-)
> > 
> 
> [...]
> 
> Hi Lukasz,
> 
> I have small comments on this.
> 
> > +static int exynos4_usb_phy0_init(struct platform_device *pdev)
> > +{
> > +	u32 rstcon;
> > +
> > +	writel(readl(S5P_USBDEVICE_PHY_CONTROL) |
> > S5P_USBDEVICE_PHY_ENABLE,
> > +			S5P_USBDEVICE_PHY_CONTROL);
> > +
> > +	exynos4_usb_phy_clkset(pdev);
> > +
> > +	/* set to normal PHY0 */
> > +	writel((readl(EXYNOS4_PHYPWR) & ~PHY0_NORMAL_MASK),
> > EXYNOS4_PHYPWR); +
> > +	/* reset PHY0 and Link */
> > +	rstcon = readl(EXYNOS4_RSTCON) | PHY0_SWRST_MASK;
> > +	writel(rstcon, EXYNOS4_RSTCON);
> > +	udelay(10);
> > +
> > +	rstcon &= ~PHY0_SWRST_MASK;
> > +	writel(rstcon, EXYNOS4_RSTCON);
> > +	udelay(80);
> 
> Do we _really_ need above udelay(80)?
> 
> As I know, we only need it in the phy1_init() for EHCI and we don't
> need it here.

I will test if this removal not break anything. 

> 
> [...]
> 
> >  int s5p_usb_phy_init(struct platform_device *pdev, int type)
> >  {
> > -	if (type == S5P_USB_PHY_HOST)
> > +	if (type == S5P_USB_PHY_DEVICE)
> > +		return exynos4_usb_phy0_init(pdev);
> 
> I think, this should be exynos4210_usb_phy0_init(pdev), because this
> is available on only exynos4210 not 

> exynos4x12 and exynos5.

I will change the name and submit a patch.

> 
> > +	else if (type == S5P_USB_PHY_HOST)
> >  		return exynos4_usb_phy1_init(pdev);
> 
> Same as above.
> 
> > 
> >  	return -EINVAL;
> > @@ -144,7 +187,9 @@ int s5p_usb_phy_init(struct platform_device
> > *pdev, int type)
> > 
> >  int s5p_usb_phy_exit(struct platform_device *pdev, int type)
> >  {
> > -	if (type == S5P_USB_PHY_HOST)
> > +	if (type == S5P_USB_PHY_DEVICE)
> > +		return exynos4_usb_phy0_exit(pdev);
> 
> Same as above.
> 
> > +	else if (type == S5P_USB_PHY_HOST)
> >  		return exynos4_usb_phy1_exit(pdev);
> 
> Same as above.
> 
> If you're ok on my comments, could you please update it as soon as
> possible for v3.5?

I will prepare a patch.

> 
> Thanks.
> 
> Best regards,
> Kgene.
> --
> Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
> SW Solution Development Team, Samsung Electronics Co., Ltd.
> 



-- 
Best regards,

Lukasz Majewski

Samsung Poland R&D Center | Linux Platform Group

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards
  2012-05-10 13:16 [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards Lukasz Majewski
                   ` (4 preceding siblings ...)
  2012-05-12 23:53 ` [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards Kukjin Kim
@ 2012-05-17  3:27 ` Tushar Behera
  5 siblings, 0 replies; 13+ messages in thread
From: Tushar Behera @ 2012-05-17  3:27 UTC (permalink / raw)
  To: Kukjin Kim
  Cc: Lukasz Majewski, Marek Szyprowski, linux-samsung-soc,
	Kyungmin Park

On 05/10/2012 06:46 PM, Lukasz Majewski wrote:
> This patch series adds S3C-HSOTG UDC support for Exynos4210 and S5PV210 based targets; namely
>  Universal_C210, Nuri and GONI.
> 
> Tested HW:
> - Exynos4210 NURI target rev.1
> - Exynos4210 Universal_C210 target rev.0
> - S5PV210 GONI target
> 
> Dependencies:
> - usb:hsotg:samsung USB S3C-HSOTG driver fixes and code cleanup
>   patches, which have been already pulled to usb for-next branch.
> 
> http://permalink.gmane.org/gmane.linux.usb.general/62101
> 
> Those patches are enabling this UDC driver on GONI, NURI and Universal_C210 targets
> 
> Joonyoung Shim (1):
>   ARM: EXYNOS: Add s3c-hsotg device support for NURI board
> 
> Lukasz Majewski (3):
>   ARM: EXYNOS: Add usb otg phy control for EXYNOS4210
>   ARM: EXYNOS: Add s3c-hsotg device support for GONI board
>   ARM: EXYNOS: Add s3c-hsotg device support for Universal C210 board
> 
>  arch/arm/mach-exynos/Kconfig                 |    3 +
>  arch/arm/mach-exynos/include/mach/irqs.h     |    1 +
>  arch/arm/mach-exynos/include/mach/map.h      |    4 +
>  arch/arm/mach-exynos/include/mach/regs-pmu.h |    3 +
>  arch/arm/mach-exynos/mach-nuri.c             |    9 ++-
>  arch/arm/mach-exynos/mach-universal_c210.c   |   10 +++
>  arch/arm/mach-exynos/setup-usb-phy.c         |   95 +++++++++++++++++++-------
>  arch/arm/mach-s5pv210/Kconfig                |    1 +
>  arch/arm/mach-s5pv210/mach-goni.c            |    5 ++
>  9 files changed, 105 insertions(+), 26 deletions(-)
> 
Kukjin,

Are you planning to queue this patchset for 3.5? If so, I have one patch
for enabling support on Origen board, which I would like to add on top
of these patches.

Please let me know about your plan.

-- 
Tushar Behera

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2012-05-17  3:27 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-10 13:16 [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards Lukasz Majewski
2012-05-10 13:16 ` [PATCH RESEND 1/4] ARM: EXYNOS: Add usb otg phy control for EXYNOS4210 Lukasz Majewski
2012-05-16  8:17   ` Kukjin Kim
2012-05-16  9:36     ` Lukasz Majewski
2012-05-10 13:16 ` [PATCH RESEND 2/4] ARM: EXYNOS: Add s3c-hsotg device support for GONI board Lukasz Majewski
2012-05-10 13:16 ` [PATCH RESEND 3/4] ARM: EXYNOS: Add s3c-hsotg device support for NURI board Lukasz Majewski
2012-05-13  1:07   ` Kukjin Kim
2012-05-14  8:48     ` Lukasz Majewski
2012-05-14 14:01       ` Kukjin Kim
2012-05-10 13:16 ` [PATCH RESEND 4/4] ARM: EXYNOS: Add s3c-hsotg device support for Universal C210 board Lukasz Majewski
2012-05-12 23:53 ` [PATCH RESEND 0/4] ARM: EXYNOS: Add s3c-hsotg support for Exynos4210 and S5PV210 boards Kukjin Kim
2012-05-17  3:27 ` Tushar Behera
  -- strict thread matches above, loose matches on Subject: below --
2012-05-10 16:29 Lukasz Majewski
2012-05-10 16:29 ` [PATCH RESEND 3/4] ARM: EXYNOS: Add s3c-hsotg device support for NURI board Lukasz Majewski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.