Message ID | 1416533190-10662-2-git-send-email-suriyan.r@gmail.com |
---|---|
State | Accepted |
Delegated to: | Minkyu Kang |
Headers | show |
On Thu, 2014-11-20 at 17:26 -0800, Suriyan Ramasami wrote: > The USB host code was missing gpio_request() calls before using the gpio > functions, causing errors to be printed out. > > As a side note calls to max77686_set_buck_mode(OPMODE_OFF/OPMODE_ON) have > been removed, as they did not have any effect. This is as per Przemyslaw: > I looked into the documentation and there is a "ENB8" pin in PMIC package. > This pin allows steering BUCK8 ON/OFF by the hardware. If ENB8 is set to low > then you can do on/off. If high, then you cannot change its state by I2C > write, which seems to be the case with the Odroids. > > Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com> > Acked-by: Przemyslaw Marczak <p.marczak@samsung.com> Tested on top of u-boot-samsung head (6a23c6533c880d557e786df81fa21b62168db6d9), with this patch ethernet support work on my Odroid X2 (emmc boot). Free free to add, Tested-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> > --- > > Changes in v2: > - Add comment why max77686_set_buck_mode() has been removed > Series-changes: 1 > - Added gpio_request() call in board_gpio_init() > > board/samsung/odroid/odroid.c | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/board/samsung/odroid/odroid.c b/board/samsung/odroid/odroid.c > index f7396ab..a2c008e 100644 > --- a/board/samsung/odroid/odroid.c > +++ b/board/samsung/odroid/odroid.c > @@ -382,6 +382,17 @@ static void board_gpio_init(void) > gpio_set_pull(EXYNOS4X12_GPIO_X31, S5P_GPIO_PULL_UP); > gpio_set_drv(EXYNOS4X12_GPIO_X31, S5P_GPIO_DRV_4X); > gpio_direction_input(EXYNOS4X12_GPIO_X31); > + > +#ifdef CONFIG_CMD_USB > + /* USB3503A Reference frequency */ > + gpio_request(EXYNOS4X12_GPIO_X30, "USB3503A RefFreq"); > + > + /* USB3503A Connect */ > + gpio_request(EXYNOS4X12_GPIO_X34, "USB3503A Connect"); > + > + /* USB3503A Reset */ > + gpio_request(EXYNOS4X12_GPIO_X35, "USB3503A Reset"); > +#endif > } > > static int pmic_init_max77686(void) > @@ -489,10 +500,8 @@ int board_usb_init(int index, enum usb_init_type init) > > p_pmic = pmic_get("MAX77686_PMIC"); > if (p_pmic && !pmic_probe(p_pmic)) { > - max77686_set_buck_mode(p_pmic, 8, OPMODE_OFF); > max77686_set_buck_voltage(p_pmic, 8, 750000); > max77686_set_buck_voltage(p_pmic, 8, 3300000); > - max77686_set_buck_mode(p_pmic, 8, OPMODE_ON); > } > > #endif
On 21/11/14 10:26, Suriyan Ramasami wrote: > The USB host code was missing gpio_request() calls before using the gpio > functions, causing errors to be printed out. > > As a side note calls to max77686_set_buck_mode(OPMODE_OFF/OPMODE_ON) have > been removed, as they did not have any effect. This is as per Przemyslaw: > I looked into the documentation and there is a "ENB8" pin in PMIC package. > This pin allows steering BUCK8 ON/OFF by the vhardware. If ENB8 is set to low > then you can do on/off. If high, then you cannot change its state by I2C > write, which seems to be the case with the Odroids. > > Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com> > Acked-by: Przemyslaw Marczak <p.marczak@samsung.com> > --- > > Changes in v2: > - Add comment why max77686_set_buck_mode() has been removed > Series-changes: 1 > - Added gpio_request() call in board_gpio_init() > > board/samsung/odroid/odroid.c | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > applied to u-boot-samsung. Thanks, Minkyu Kang.
diff --git a/board/samsung/odroid/odroid.c b/board/samsung/odroid/odroid.c index f7396ab..a2c008e 100644 --- a/board/samsung/odroid/odroid.c +++ b/board/samsung/odroid/odroid.c @@ -382,6 +382,17 @@ static void board_gpio_init(void) gpio_set_pull(EXYNOS4X12_GPIO_X31, S5P_GPIO_PULL_UP); gpio_set_drv(EXYNOS4X12_GPIO_X31, S5P_GPIO_DRV_4X); gpio_direction_input(EXYNOS4X12_GPIO_X31); + +#ifdef CONFIG_CMD_USB + /* USB3503A Reference frequency */ + gpio_request(EXYNOS4X12_GPIO_X30, "USB3503A RefFreq"); + + /* USB3503A Connect */ + gpio_request(EXYNOS4X12_GPIO_X34, "USB3503A Connect"); + + /* USB3503A Reset */ + gpio_request(EXYNOS4X12_GPIO_X35, "USB3503A Reset"); +#endif } static int pmic_init_max77686(void) @@ -489,10 +500,8 @@ int board_usb_init(int index, enum usb_init_type init) p_pmic = pmic_get("MAX77686_PMIC"); if (p_pmic && !pmic_probe(p_pmic)) { - max77686_set_buck_mode(p_pmic, 8, OPMODE_OFF); max77686_set_buck_voltage(p_pmic, 8, 750000); max77686_set_buck_voltage(p_pmic, 8, 3300000); - max77686_set_buck_mode(p_pmic, 8, OPMODE_ON); } #endif