Message ID | 1305032211-7732-1-git-send-email-ramneek.mehresh@freescale.com |
---|---|
State | Superseded |
Headers | show |
Dear Ramneek Mehresh, In message <1305032211-7732-1-git-send-email-ramneek.mehresh@freescale.com> you wrote: > Resolve P1020 second USB controller multiplexing with eLBC > - mandatory to mention USB2 in hwconfig string to select it > over eLBC, otherwise USB2 node is removed > - works only for SPI and SD boot > > Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com> > --- > Applies on git://git.am.freescale.net/mirrors/u-boot.git > (branch master) Forget it. It is a mandatory requirement that patches are submitted against the master branch of the master repository. NAK, without even looking further. > board/freescale/p1_p2_rdb/p1_p2_rdb.c | 54 +++++++++++++++++++++++++++++++++ > 1 files changed, 54 insertions(+), 0 deletions(-) > > diff --git a/board/freescale/p1_p2_rdb/p1_p2_rdb.c b/board/freescale/p1_p2_rdb/p1_p2_rdb.c > index d66b130..14ad895 100644 > --- a/board/freescale/p1_p2_rdb/p1_p2_rdb.c > +++ b/board/freescale/p1_p2_rdb/p1_p2_rdb.c > @@ -37,6 +37,7 @@ > #include <netdev.h> > #include <rtc.h> > #include <i2c.h> > +#include <hwconfig.h> > > DECLARE_GLOBAL_DATA_PTR; > > @@ -247,6 +248,11 @@ extern void ft_pci_board_setup(void *blob); > > void ft_board_setup(void *blob, bd_t *bd) > { > +#if defined(CONFIG_SDCARD) || defined(CONFIG_SPIFLASH) > + const char *soc_elbc_compat = "fsl,p1020-elbc"; > +#endif > + const char *soc_usb_compat = "fsl-usb2-dr"; > + int off, err, usb1_off, usb2_off; > phys_addr_t base; > phys_size_t size; > > @@ -260,5 +266,53 @@ void ft_board_setup(void *blob, bd_t *bd) > #endif /* #if defined(CONFIG_PCI) */ > > fdt_fixup_memory(blob, (u64)base, (u64)size); > + > + fdt_fixup_dr_usb(blob, bd); > + > +#if defined(CONFIG_SDCARD) || defined(CONFIG_SPIFLASH) > + /* Delete eLBC node as it is muxed with USB2 controller */ > + if (hwconfig("usb2")) { > + off = fdt_node_offset_by_compatible(blob, -1, > + soc_elbc_compat); > + if (off < 0) { > + printf("WARNING: could not find compatible node" > + " %s: %s.\n", soc_elbc_compat, > + fdt_strerror(off)); > + return; > + } > + err = fdt_del_node(blob, off); > + if (err < 0) { > + printf("WARNING: could not remove %s: %s.\n", > + soc_elbc_compat, fdt_strerror(err)); > + return; > + } Move the return; from oneline above here. > + } else { > +#endif Then you can get rid of this "else {" part, and indentation will become correct. As is, it's ugly at best. > + /* Delete USB2 node as it is muxed with eLBC */ > + usb1_off = fdt_node_offset_by_compatible(blob, -1, > + soc_usb_compat); > + if (usb1_off < 0) { > + printf("WARNING: could not find compatible node" > + " %s: %s.\n", soc_usb_compat, > + fdt_strerror(usb1_off)); > + return; > + } > + usb2_off = fdt_node_offset_by_compatible(blob, usb1_off, > + soc_usb_compat); > + if (usb2_off < 0) { > + printf("WARNING: could not find compatible node" > + " %s: %s.\n", soc_usb_compat, > + fdt_strerror(usb2_off)); > + return; > + } > + err = fdt_del_node(blob, usb2_off); > + if (err < 0) { > + printf("WARNING: could not remove %s: %s.\n", > + soc_usb_compat, fdt_strerror(err)); > + return; > + } > +#if defined(CONFIG_SDCARD) || defined(CONFIG_SPIFLASH) > + } > +#endif This #if will then disappear, too. Best regards, Wolfgang Denk
diff --git a/board/freescale/p1_p2_rdb/p1_p2_rdb.c b/board/freescale/p1_p2_rdb/p1_p2_rdb.c index d66b130..14ad895 100644 --- a/board/freescale/p1_p2_rdb/p1_p2_rdb.c +++ b/board/freescale/p1_p2_rdb/p1_p2_rdb.c @@ -37,6 +37,7 @@ #include <netdev.h> #include <rtc.h> #include <i2c.h> +#include <hwconfig.h> DECLARE_GLOBAL_DATA_PTR; @@ -247,6 +248,11 @@ extern void ft_pci_board_setup(void *blob); void ft_board_setup(void *blob, bd_t *bd) { +#if defined(CONFIG_SDCARD) || defined(CONFIG_SPIFLASH) + const char *soc_elbc_compat = "fsl,p1020-elbc"; +#endif + const char *soc_usb_compat = "fsl-usb2-dr"; + int off, err, usb1_off, usb2_off; phys_addr_t base; phys_size_t size; @@ -260,5 +266,53 @@ void ft_board_setup(void *blob, bd_t *bd) #endif /* #if defined(CONFIG_PCI) */ fdt_fixup_memory(blob, (u64)base, (u64)size); + + fdt_fixup_dr_usb(blob, bd); + +#if defined(CONFIG_SDCARD) || defined(CONFIG_SPIFLASH) + /* Delete eLBC node as it is muxed with USB2 controller */ + if (hwconfig("usb2")) { + off = fdt_node_offset_by_compatible(blob, -1, + soc_elbc_compat); + if (off < 0) { + printf("WARNING: could not find compatible node" + " %s: %s.\n", soc_elbc_compat, + fdt_strerror(off)); + return; + } + err = fdt_del_node(blob, off); + if (err < 0) { + printf("WARNING: could not remove %s: %s.\n", + soc_elbc_compat, fdt_strerror(err)); + return; + } + } else { +#endif + /* Delete USB2 node as it is muxed with eLBC */ + usb1_off = fdt_node_offset_by_compatible(blob, -1, + soc_usb_compat); + if (usb1_off < 0) { + printf("WARNING: could not find compatible node" + " %s: %s.\n", soc_usb_compat, + fdt_strerror(usb1_off)); + return; + } + usb2_off = fdt_node_offset_by_compatible(blob, usb1_off, + soc_usb_compat); + if (usb2_off < 0) { + printf("WARNING: could not find compatible node" + " %s: %s.\n", soc_usb_compat, + fdt_strerror(usb2_off)); + return; + } + err = fdt_del_node(blob, usb2_off); + if (err < 0) { + printf("WARNING: could not remove %s: %s.\n", + soc_usb_compat, fdt_strerror(err)); + return; + } +#if defined(CONFIG_SDCARD) || defined(CONFIG_SPIFLASH) + } +#endif } #endif
Resolve P1020 second USB controller multiplexing with eLBC - mandatory to mention USB2 in hwconfig string to select it over eLBC, otherwise USB2 node is removed - works only for SPI and SD boot Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com> --- Applies on git://git.am.freescale.net/mirrors/u-boot.git (branch master) board/freescale/p1_p2_rdb/p1_p2_rdb.c | 54 +++++++++++++++++++++++++++++++++ 1 files changed, 54 insertions(+), 0 deletions(-)