1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-03 17:52:07 +02:00

rockchip: usb: Migrate to use ofnode

Migrate to use ofnode_* instead of fdt_* so that we may able to use live
dt for usb udc driver.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:
Kever Yang
2019-10-16 17:13:31 +08:00
parent deebba82d9
commit e76943ca6f
3 changed files with 11 additions and 12 deletions

View File

@@ -61,28 +61,26 @@ static struct dwc2_plat_otg_data otg_data = {
int board_usb_init(int index, enum usb_init_type init) int board_usb_init(int index, enum usb_init_type init)
{ {
int node; ofnode node;
const char *mode; const char *mode;
bool matched = false; bool matched = false;
const void *blob = gd->fdt_blob;
/* find the usb_otg node */ /* find the usb_otg node */
node = fdt_node_offset_by_compatible(blob, -1, "snps,dwc2"); node = ofnode_by_compatible(ofnode_null(), "snps,dwc2");
while (ofnode_valid(node)) {
while (node > 0) { mode = ofnode_read_string(node, "dr_mode");
mode = fdt_getprop(blob, node, "dr_mode", NULL);
if (mode && strcmp(mode, "otg") == 0) { if (mode && strcmp(mode, "otg") == 0) {
matched = true; matched = true;
break; break;
} }
node = fdt_node_offset_by_compatible(blob, node, "snps,dwc2"); node = ofnode_by_compatible(node, "snps,dwc2");
} }
if (!matched) { if (!matched) {
debug("Not found usb_otg device\n"); debug("Not found usb_otg device\n");
return -ENODEV; return -ENODEV;
} }
otg_data.regs_otg = fdtdec_get_addr(blob, node, "reg"); otg_data.regs_otg = ofnode_get_addr(node);
return dwc2_udc_probe(&otg_data); return dwc2_udc_probe(&otg_data);
} }

View File

@@ -5,7 +5,6 @@
#include <common.h> #include <common.h>
#include <asm/io.h> #include <asm/io.h>
#include <linux/libfdt.h>
#include "../gadget/dwc2_udc_otg_priv.h" #include "../gadget/dwc2_udc_otg_priv.h"
@@ -71,8 +70,8 @@ void otg_phy_init(struct dwc2_udc *dev)
for (i = 0; i < ARRAY_SIZE(rockchip_usb2_phy_dt_ids); i++) { for (i = 0; i < ARRAY_SIZE(rockchip_usb2_phy_dt_ids); i++) {
of_id = &rockchip_usb2_phy_dt_ids[i]; of_id = &rockchip_usb2_phy_dt_ids[i];
if (fdt_node_check_compatible(gd->fdt_blob, pdata->phy_of_node, if (ofnode_device_is_compatible(pdata->phy_of_node,
of_id->compatible) == 0) { of_id->compatible)){
phy_cfg = (struct rockchip_usb2_phy_cfg *)of_id->data; phy_cfg = (struct rockchip_usb2_phy_cfg *)of_id->data;
break; break;
} }

View File

@@ -8,12 +8,14 @@
#ifndef __DWC2_USB_GADGET #ifndef __DWC2_USB_GADGET
#define __DWC2_USB_GADGET #define __DWC2_USB_GADGET
#include <dm/ofnode.h>
#define PHY0_SLEEP (1 << 5) #define PHY0_SLEEP (1 << 5)
#define DWC2_MAX_HW_ENDPOINTS 16 #define DWC2_MAX_HW_ENDPOINTS 16
struct dwc2_plat_otg_data { struct dwc2_plat_otg_data {
void *priv; void *priv;
int phy_of_node; ofnode phy_of_node;
int (*phy_control)(int on); int (*phy_control)(int on);
uintptr_t regs_phy; uintptr_t regs_phy;
uintptr_t regs_otg; uintptr_t regs_otg;