On 02/13/2012 05:08 PM, Lukasz Majewski wrote:
> This patch adds platform data for using S3C-HSOTG driver at
> Universal_C210 target.
> 
> Signed-off-by: Lukasz Majewski <[email protected]>
> Signed-off-by: Kyungmin Park <[email protected]>
> ---
>  arch/arm/mach-exynos/Kconfig                 |    1 +
>  arch/arm/mach-exynos/include/mach/map.h      |    2 ++
>  arch/arm/mach-exynos/include/mach/regs-sys.h |   20 ++++++++++++++++++++
>  arch/arm/mach-exynos/mach-universal_c210.c   |   14 ++++++++++++++
>  arch/arm/plat-samsung/devs.c                 |    2 +-

You must split these changes to platform-code and board-specific code
... and the changes to fix build-error w.r.t. S3C_DEV_USB_HSOTG should
come before OTG support is added to any of the EXYNOS based boards.

>  5 files changed, 38 insertions(+), 1 deletions(-)
>  create mode 100644 arch/arm/mach-exynos/include/mach/regs-sys.h
> 
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 440d095..42bb710 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -246,6 +246,7 @@ config MACH_UNIVERSAL_C210
>       select S5P_DEV_MFC
>       select S5P_DEV_ONENAND
>       select S5P_DEV_TV
> +     select S3C_DEV_USB_HSOTG

The same needs to be updated for nuri-board also ...

>       select EXYNOS4_DEV_DMA
>       select EXYNOS4_DEV_PD
>       select EXYNOS4_SETUP_FIMD0
> diff --git a/arch/arm/mach-exynos/include/mach/map.h 
> b/arch/arm/mach-exynos/include/mach/map.h
> index a81c95b..be09588 100644
> --- a/arch/arm/mach-exynos/include/mach/map.h
> +++ b/arch/arm/mach-exynos/include/mach/map.h
> @@ -34,6 +34,8 @@
>  #define EXYNOS4_PA_G2D                       0x12800000
>  
>  #define EXYNOS4_PA_USB_HSOTG         0x12480000
> +#define EXYNOS4_PA_USB_HSPHY         0x125B0000

This macro is not used anywhere in the patch. I suppose it is not
required.

> +
>  #define EXYNOS4_PA_I2S0                      0x03830000
>  #define EXYNOS4_PA_I2S1                      0xE3100000
>  #define EXYNOS4_PA_I2S2                      0xE2A00000
> diff --git a/arch/arm/mach-exynos/include/mach/regs-sys.h 
> b/arch/arm/mach-exynos/include/mach/regs-sys.h
> new file mode 100644
> index 0000000..5682227
> --- /dev/null
> +++ b/arch/arm/mach-exynos/include/mach/regs-sys.h
> @@ -0,0 +1,20 @@
> +/* arch/arm/mach-s5pv210/include/mach/regs-sys.h
Change the file name, or still better, don't use the filename at all.

> + *
> + * Copyright 2010 Ben Dooks <[email protected]>
> + *
> + * S5PV210 - System registers definitions
EXYNOS?

> + *
> + * 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.
> +*/
> +
> +/* Registers related to power management */
> +#define S5P_PMREGx(x)                        (S5P_VA_PMU + (x))
> +
> +#define S5P_USBOTG_PHY_CONTROL               S5P_PMREGx(0x0704)
> +#define S5P_USBOTG_PHY_EN            (1 << 0)
> +
> +/* compatibility for hsotg driver */
> +#define S3C64XX_OTHERS               S5P_USBOTG_PHY_CONTROL
> +#define S3C64XX_OTHERS_USBMASK       S5P_USBOTG_PHY_EN

I don't think we need these definitions.

> diff --git a/arch/arm/mach-exynos/mach-universal_c210.c 
> b/arch/arm/mach-exynos/mach-universal_c210.c
> index 220de1c..2e43e98 100644
> --- a/arch/arm/mach-exynos/mach-universal_c210.c
> +++ b/arch/arm/mach-exynos/mach-universal_c210.c
> @@ -28,6 +28,7 @@
>  #include <asm/mach-types.h>
>  
>  #include <plat/regs-serial.h>
> +#include <plat/clock.h>
>  #include <plat/cpu.h>
>  #include <plat/devs.h>
>  #include <plat/iic.h>
> @@ -41,6 +42,7 @@
>  #include <plat/s5p-time.h>
>  #include <plat/camport.h>
>  #include <plat/mipi_csis.h>
> +#include <plat/udc-hs.h>
>  
>  #include <mach/map.h>
>  
> @@ -200,6 +202,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"),
> @@ -285,6 +288,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"),
>  };
>  
> @@ -475,7 +479,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,
>               },
> @@ -928,6 +935,9 @@ static struct gpio universal_camera_gpios[] = {
>       { GPIO_CAM_MEGA_nRST,   GPIOF_OUT_INIT_LOW,  "CAM_8M_NRST" },
>  };
>  
> +/* USB OTG */
> +static struct s3c_hsotg_plat universal_hsotg_pdata;
> +
>  static void universal_camera_init(void)
>  {
>       s3c_set_platdata(&mipi_csis_platdata, sizeof(mipi_csis_platdata),
> @@ -981,6 +991,7 @@ static struct platform_device *universal_devices[] 
> __initdata = {
>       &universal_gpio_keys,
>       &s5p_device_onenand,
>       &s5p_device_fimd0,
> +     &s3c_device_usb_hsotg,
>       &s5p_device_mfc,
>       &s5p_device_mfc_l,
>       &s5p_device_mfc_r,
> @@ -1039,6 +1050,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 */
> @@ -1052,6 +1064,8 @@ static void __init universal_machine_init(void)
>       s5p_device_fimc2.dev.parent = &exynos4_device_pd[PD_CAM].dev;
>       s5p_device_fimc3.dev.parent = &exynos4_device_pd[PD_CAM].dev;
>       s5p_device_mipi_csis0.dev.parent = &exynos4_device_pd[PD_CAM].dev;
> +
> +     clk_xusbxti.rate = 24000000;
>  }
>  
>  MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210")
> diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c
> index 2d4d500..2e6558e 100644
> --- a/arch/arm/plat-samsung/devs.c
> +++ b/arch/arm/plat-samsung/devs.c
> @@ -1439,7 +1439,7 @@ void __init s5p_ehci_set_platdata(struct 
> s5p_ehci_platdata *pd)
>  #ifdef CONFIG_S3C_DEV_USB_HSOTG
>  static struct resource s3c_usb_hsotg_resources[] = {
>       [0] = DEFINE_RES_MEM(S3C_PA_USB_HSOTG, SZ_128K),
> -     [1] = DEFINE_RES_IRQ(IRQ_OTG),
> +     [1] = DEFINE_RES_IRQ(IRQ_USB_HSOTG),
>  };
>  
>  struct platform_device s3c_device_usb_hsotg = {


-- 
Tushar Behera
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to