]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
rockchip: usb: Migrate to use ofnode
authorKever Yang <kever.yang@rock-chips.com>
Wed, 16 Oct 2019 09:13:31 +0000 (17:13 +0800)
committerKever Yang <kever.yang@rock-chips.com>
Sun, 17 Nov 2019 09:22:53 +0000 (17:22 +0800)
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>
arch/arm/mach-rockchip/board.c
drivers/usb/phy/rockchip_usb2_phy.c
include/usb/dwc2_udc.h

index 8ca34637315904e4c27cc802d8c8aee60c1e7410..c4b0b9dfe2c5c84f571be29df6102258ee5c8c64 100644 (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 node;
+       ofnode node;
        const char *mode;
        bool matched = false;
-       const void *blob = gd->fdt_blob;
 
        /* find the usb_otg node */
-       node = fdt_node_offset_by_compatible(blob, -1, "snps,dwc2");
-
-       while (node > 0) {
-               mode = fdt_getprop(blob, node, "dr_mode", NULL);
+       node = ofnode_by_compatible(ofnode_null(), "snps,dwc2");
+       while (ofnode_valid(node)) {
+               mode = ofnode_read_string(node, "dr_mode");
                if (mode && strcmp(mode, "otg") == 0) {
                        matched = true;
                        break;
                }
 
-               node = fdt_node_offset_by_compatible(blob, node, "snps,dwc2");
+               node = ofnode_by_compatible(node, "snps,dwc2");
        }
        if (!matched) {
                debug("Not found usb_otg device\n");
                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);
 }
index 16e899954a39974e6d57964c1d13ae2cde0db5bc..69e408b6c1bc61c55096824eb1aa06970acd3737 100644 (file)
@@ -5,7 +5,6 @@
 
 #include <common.h>
 #include <asm/io.h>
-#include <linux/libfdt.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++) {
                of_id = &rockchip_usb2_phy_dt_ids[i];
-               if (fdt_node_check_compatible(gd->fdt_blob, pdata->phy_of_node,
-                                             of_id->compatible) == 0) {
+               if (ofnode_device_is_compatible(pdata->phy_of_node,
+                                               of_id->compatible)){
                        phy_cfg = (struct rockchip_usb2_phy_cfg *)of_id->data;
                        break;
                }
index a6c12212a9b0cabe4a86dc47114b4d6e33b8fceb..a2af381a6677d06f5cc85cfc96fad178980bc504 100644 (file)
@@ -8,12 +8,14 @@
 #ifndef __DWC2_USB_GADGET
 #define __DWC2_USB_GADGET
 
+#include <dm/ofnode.h>
+
 #define PHY0_SLEEP              (1 << 5)
 #define DWC2_MAX_HW_ENDPOINTS  16
 
 struct dwc2_plat_otg_data {
        void            *priv;
-       int             phy_of_node;
+       ofnode          phy_of_node;
        int             (*phy_control)(int on);
        uintptr_t       regs_phy;
        uintptr_t       regs_otg;