Patchwork [U-Boot,1/2] EXYNOS5: Add pinmux for VBus

login
register
mail settings
Submitter Rajeshwari Birje
Date Dec. 3, 2012, 1:18 p.m.
Message ID <1354540697-4007-2-git-send-email-rajeshwari.s@samsung.com>
Download mbox | patch
Permalink /patch/203346/
State Superseded
Delegated to: Marek Vasut
Headers show

Comments

Rajeshwari Birje - Dec. 3, 2012, 1:18 p.m.
This patch sets pinmux for VBus of USB.

Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
---
 arch/arm/cpu/armv7/exynos/pinmux.c        |   10 ++++++++++
 arch/arm/include/asm/arch-exynos/periph.h |    1 +
 2 files changed, 11 insertions(+), 0 deletions(-)
Kyungmin Park - Dec. 3, 2012, 1:30 p.m.
On Mon, Dec 3, 2012 at 10:18 PM, Rajeshwari Shinde
<rajeshwari.s@samsung.com> wrote:
> This patch sets pinmux for VBus of USB.
>
> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
> Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
> ---
>  arch/arm/cpu/armv7/exynos/pinmux.c        |   10 ++++++++++
>  arch/arm/include/asm/arch-exynos/periph.h |    1 +
>  2 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c
> index f9f6911..d65ffc7 100644
> --- a/arch/arm/cpu/armv7/exynos/pinmux.c
> +++ b/arch/arm/cpu/armv7/exynos/pinmux.c
> @@ -285,6 +285,14 @@ void exynos5_spi_config(int peripheral)
>         }
>  }
>
> +void exynos5_usb20_config(void)
> +{
> +       struct exynos5_gpio_part1 *gpio1 =
> +               (struct exynos5_gpio_part1 *) samsung_get_base_gpio_part1();
> +       /* Enable VBUS power switch */
> +       s5p_gpio_direction_output(&gpio1->x2,6, 1);
it seems to be board specific GPIO value. doesn't it?

Thank you,
Kyungmin Park
> +}
> +
>  static int exynos5_pinmux_config(int peripheral, int flags)
>  {
>         switch (peripheral) {
> @@ -322,6 +330,8 @@ static int exynos5_pinmux_config(int peripheral, int flags)
>         case PERIPH_ID_SPI4:
>                 exynos5_spi_config(peripheral);
>                 break;
> +       case PERIPH_ID_USB20:
> +               exynos5_usb20_config();
>         default:
>                 debug("%s: invalid peripheral %d", __func__, peripheral);
>                 return -1;
> diff --git a/arch/arm/include/asm/arch-exynos/periph.h b/arch/arm/include/asm/arch-exynos/periph.h
> index 783b77c..84593f6 100644
> --- a/arch/arm/include/asm/arch-exynos/periph.h
> +++ b/arch/arm/include/asm/arch-exynos/periph.h
> @@ -46,6 +46,7 @@ enum periph_id {
>         PERIPH_ID_SPI0 = 68,
>         PERIPH_ID_SPI1,
>         PERIPH_ID_SPI2,
> +       PERIPH_ID_USB20,
>         PERIPH_ID_SDMMC0 = 75,
>         PERIPH_ID_SDMMC1,
>         PERIPH_ID_SDMMC2,
> --
> 1.7.4.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Rajeshwari Birje - Dec. 3, 2012, 1:38 p.m.
Hi Kyungmin Park,

On Mon, Dec 3, 2012 at 7:00 PM, Kyungmin Park <kmpark@infradead.org> wrote:
> On Mon, Dec 3, 2012 at 10:18 PM, Rajeshwari Shinde
> <rajeshwari.s@samsung.com> wrote:
>> This patch sets pinmux for VBus of USB.
>>
>> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
>> Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
>> ---
>>  arch/arm/cpu/armv7/exynos/pinmux.c        |   10 ++++++++++
>>  arch/arm/include/asm/arch-exynos/periph.h |    1 +
>>  2 files changed, 11 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c
>> index f9f6911..d65ffc7 100644
>> --- a/arch/arm/cpu/armv7/exynos/pinmux.c
>> +++ b/arch/arm/cpu/armv7/exynos/pinmux.c
>> @@ -285,6 +285,14 @@ void exynos5_spi_config(int peripheral)
>>         }
>>  }
>>
>> +void exynos5_usb20_config(void)
>> +{
>> +       struct exynos5_gpio_part1 *gpio1 =
>> +               (struct exynos5_gpio_part1 *) samsung_get_base_gpio_part1();
>> +       /* Enable VBUS power switch */
>> +       s5p_gpio_direction_output(&gpio1->x2,6, 1);
> it seems to be board specific GPIO value. doesn't it?
Yes it is smdk5250 specific.

> Thank you,
> Kyungmin Park
>> +}
>> +
>>  static int exynos5_pinmux_config(int peripheral, int flags)
>>  {
>>         switch (peripheral) {
>> @@ -322,6 +330,8 @@ static int exynos5_pinmux_config(int peripheral, int flags)
>>         case PERIPH_ID_SPI4:
>>                 exynos5_spi_config(peripheral);
>>                 break;
>> +       case PERIPH_ID_USB20:
>> +               exynos5_usb20_config();
>>         default:
>>                 debug("%s: invalid peripheral %d", __func__, peripheral);
>>                 return -1;
>> diff --git a/arch/arm/include/asm/arch-exynos/periph.h b/arch/arm/include/asm/arch-exynos/periph.h
>> index 783b77c..84593f6 100644
>> --- a/arch/arm/include/asm/arch-exynos/periph.h
>> +++ b/arch/arm/include/asm/arch-exynos/periph.h
>> @@ -46,6 +46,7 @@ enum periph_id {
>>         PERIPH_ID_SPI0 = 68,
>>         PERIPH_ID_SPI1,
>>         PERIPH_ID_SPI2,
>> +       PERIPH_ID_USB20,
>>         PERIPH_ID_SDMMC0 = 75,
>>         PERIPH_ID_SDMMC1,
>>         PERIPH_ID_SDMMC2,
>> --
>> 1.7.4.4
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot@lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

Regards,
Rajeshwari shinde.
Kyungmin Park - Dec. 3, 2012, 2:06 p.m.
On Mon, Dec 3, 2012 at 10:38 PM, Rajeshwari Birje
<rajeshwari.birje@gmail.com> wrote:
> Hi Kyungmin Park,
>
> On Mon, Dec 3, 2012 at 7:00 PM, Kyungmin Park <kmpark@infradead.org> wrote:
>> On Mon, Dec 3, 2012 at 10:18 PM, Rajeshwari Shinde
>> <rajeshwari.s@samsung.com> wrote:
>>> This patch sets pinmux for VBus of USB.
>>>
>>> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
>>> Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
>>> ---
>>>  arch/arm/cpu/armv7/exynos/pinmux.c        |   10 ++++++++++
>>>  arch/arm/include/asm/arch-exynos/periph.h |    1 +
>>>  2 files changed, 11 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c
>>> index f9f6911..d65ffc7 100644
>>> --- a/arch/arm/cpu/armv7/exynos/pinmux.c
>>> +++ b/arch/arm/cpu/armv7/exynos/pinmux.c
>>> @@ -285,6 +285,14 @@ void exynos5_spi_config(int peripheral)
>>>         }
>>>  }
>>>
>>> +void exynos5_usb20_config(void)
>>> +{
>>> +       struct exynos5_gpio_part1 *gpio1 =
>>> +               (struct exynos5_gpio_part1 *) samsung_get_base_gpio_part1();
>>> +       /* Enable VBUS power switch */
>>> +       s5p_gpio_direction_output(&gpio1->x2,6, 1);
>> it seems to be board specific GPIO value. doesn't it?
> Yes it is smdk5250 specific.
So it's not proper place to add.
>> Thank you,
>> Kyungmin Park
>>> +}
>>> +
>>>  static int exynos5_pinmux_config(int peripheral, int flags)
>>>  {
>>>         switch (peripheral) {
>>> @@ -322,6 +330,8 @@ static int exynos5_pinmux_config(int peripheral, int flags)
>>>         case PERIPH_ID_SPI4:
>>>                 exynos5_spi_config(peripheral);
>>>                 break;
>>> +       case PERIPH_ID_USB20:
>>> +               exynos5_usb20_config();
>>>         default:
>>>                 debug("%s: invalid peripheral %d", __func__, peripheral);
>>>                 return -1;
>>> diff --git a/arch/arm/include/asm/arch-exynos/periph.h b/arch/arm/include/asm/arch-exynos/periph.h
>>> index 783b77c..84593f6 100644
>>> --- a/arch/arm/include/asm/arch-exynos/periph.h
>>> +++ b/arch/arm/include/asm/arch-exynos/periph.h
>>> @@ -46,6 +46,7 @@ enum periph_id {
>>>         PERIPH_ID_SPI0 = 68,
>>>         PERIPH_ID_SPI1,
>>>         PERIPH_ID_SPI2,
>>> +       PERIPH_ID_USB20,
>>>         PERIPH_ID_SDMMC0 = 75,
>>>         PERIPH_ID_SDMMC1,
>>>         PERIPH_ID_SDMMC2,
>>> --
>>> 1.7.4.4
>>>
>>> _______________________________________________
>>> U-Boot mailing list
>>> U-Boot@lists.denx.de
>>> http://lists.denx.de/mailman/listinfo/u-boot
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot@lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
>
> Regards,
> Rajeshwari shinde.

Patch

diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c
index f9f6911..d65ffc7 100644
--- a/arch/arm/cpu/armv7/exynos/pinmux.c
+++ b/arch/arm/cpu/armv7/exynos/pinmux.c
@@ -285,6 +285,14 @@  void exynos5_spi_config(int peripheral)
 	}
 }
 
+void exynos5_usb20_config(void)
+{
+	struct exynos5_gpio_part1 *gpio1 =
+		(struct exynos5_gpio_part1 *) samsung_get_base_gpio_part1();
+	/* Enable VBUS power switch */
+	s5p_gpio_direction_output(&gpio1->x2,6, 1);
+}
+
 static int exynos5_pinmux_config(int peripheral, int flags)
 {
 	switch (peripheral) {
@@ -322,6 +330,8 @@  static int exynos5_pinmux_config(int peripheral, int flags)
 	case PERIPH_ID_SPI4:
 		exynos5_spi_config(peripheral);
 		break;
+	case PERIPH_ID_USB20:
+		exynos5_usb20_config();
 	default:
 		debug("%s: invalid peripheral %d", __func__, peripheral);
 		return -1;
diff --git a/arch/arm/include/asm/arch-exynos/periph.h b/arch/arm/include/asm/arch-exynos/periph.h
index 783b77c..84593f6 100644
--- a/arch/arm/include/asm/arch-exynos/periph.h
+++ b/arch/arm/include/asm/arch-exynos/periph.h
@@ -46,6 +46,7 @@  enum periph_id {
 	PERIPH_ID_SPI0 = 68,
 	PERIPH_ID_SPI1,
 	PERIPH_ID_SPI2,
+	PERIPH_ID_USB20,
 	PERIPH_ID_SDMMC0 = 75,
 	PERIPH_ID_SDMMC1,
 	PERIPH_ID_SDMMC2,