Hi Kever On Thu, Nov 14, 2019 at 8:29 AM Michael Nazzareno Trimarchi <[email protected]> wrote: > > Hi > > Is this public? > > Michael > > On Thu, Nov 14, 2019 at 8:15 AM Kever Yang <[email protected]> wrote: > > > > Hi Michael, > > > > I have send a similar patch to fix this issue weeks ago, and ready > > to merge. > > > >
Sorry but working on tinker-S I found a couple of no-working things. Even I have pending the question about passing data from spl to u-boot in no fit image. I fully now support the tinker board and wrtoe the code for board detection. I will make it public because need couple of refactor Micahel > > Thanks, > > > > - Kever > > > > On 2019/11/14 上午12:07, Michael Trimarchi wrote: > > > rk3288 needs phy registration in order to work or the board > > > just hang > > > > > > Signed-off-by: Michael Trimarchi <[email protected]> > > > --- > > > arch/arm/mach-rockchip/board.c | 12 ++++++++ > > > arch/arm/mach-rockchip/rk3288/rk3288.c | 39 ++++++++++++++++++++++++++ > > > 2 files changed, 51 insertions(+) > > > > > > diff --git a/arch/arm/mach-rockchip/board.c > > > b/arch/arm/mach-rockchip/board.c > > > index 8ca3463731..37ae37ff34 100644 > > > --- a/arch/arm/mach-rockchip/board.c > > > +++ b/arch/arm/mach-rockchip/board.c > > > @@ -59,6 +59,12 @@ static struct dwc2_plat_otg_data otg_data = { > > > .tx_fifo_sz = 128, > > > }; > > > > > > + > > > +__weak int board_usb_phy_init(int node, struct dwc2_plat_otg_data > > > *otg_data) > > > +{ > > > + return 0; > > > +} > > > + > > > int board_usb_init(int index, enum usb_init_type init) > > > { > > > int node; > > > @@ -84,6 +90,12 @@ int board_usb_init(int index, enum usb_init_type init) > > > } > > > otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg"); > > > > > > + node = board_usb_phy_init(node, &otg_data); > > > + if (node < 0) { > > > + debug("Not found usb_otg phy\n"); > > > + return -ENODEV; > > > + } > > > + > > > return dwc2_udc_probe(&otg_data); > > > } > > > > > > diff --git a/arch/arm/mach-rockchip/rk3288/rk3288.c > > > b/arch/arm/mach-rockchip/rk3288/rk3288.c > > > index 002d1508e5..6d93214e7c 100644 > > > --- a/arch/arm/mach-rockchip/rk3288/rk3288.c > > > +++ b/arch/arm/mach-rockchip/rk3288/rk3288.c > > > @@ -184,6 +184,45 @@ static void rk3288_detect_reset_reason(void) > > > rk_clrreg(&cru->cru_glb_rst_st, GLB_RST_ST_MASK); > > > } > > > > > > +#if defined(CONFIG_USB_GADGET) && defined(CONFIG_USB_GADGET_DWC2_OTG) > > > +#include <usb.h> > > > +#include <usb/dwc2_udc.h> > > > + > > > +int board_usb_phy_init(int node, struct dwc2_plat_otg_data *otg_data) > > > +{ > > > + int phy_node; > > > + const void *blob = gd->fdt_blob; > > > + u32 grf_phy_offset; > > > + > > > + node = fdtdec_lookup_phandle(blob, node, "phys"); > > > + if (node <= 0) { > > > + debug("Not found usb phy device\n"); > > > + return -ENODEV; > > > + } > > > + > > > + phy_node = fdt_parent_offset(blob, node); > > > + if (phy_node <= 0) { > > > + debug("Not found usb phy device\n"); > > > + return -ENODEV; > > > + } > > > + > > > + otg_data->phy_of_node = phy_node; > > > + grf_phy_offset = fdtdec_get_addr(blob, node, "reg"); > > > + > > > + /* find the grf node */ > > > + node = fdt_node_offset_by_compatible(blob, -1, > > > "rockchip,rk3288-grf"); > > > + if (node <= 0) { > > > + debug("Not found grf device\n"); > > > + return -ENODEV; > > > + } > > > + otg_data->regs_phy = grf_phy_offset + > > > + fdtdec_get_addr(blob, node, "reg"); > > > + > > > + return 0; > > > +} > > > + > > > +#endif > > > + > > > __weak int rk3288_board_late_init(void) > > > { > > > return 0; > > > > > > > -- > | Michael Nazzareno Trimarchi Amarula Solutions BV | > | COO - Founder Cruquiuskade 47 | > | +31(0)851119172 Amsterdam 1018 AM NL | > | [`as] http://www.amarulasolutions.com | -- | Michael Nazzareno Trimarchi Amarula Solutions BV | | COO - Founder Cruquiuskade 47 | | +31(0)851119172 Amsterdam 1018 AM NL | | [`as] http://www.amarulasolutions.com | _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

