From c744e6308951d47f597e5dac450cab5555698246 Mon Sep 17 00:00:00 2001 From: Caleb Connolly Date: Mon, 26 Feb 2024 17:26:21 +0000 Subject: board: dragonboard410c: upstream DT compat Use the root compatible strings from upstream Linux, add missing '#clock-cells' property to the gcc node. Adjust some of the msm8916/apq8016 drivers to use the correct upstream compatible properties and DT bindings. This prepares us to switch to upstream DT in a future patch. Reviewed-by: Neil Armstrong Reviewed-by: Sumit Garg Tested-by: Sumit Garg #qcs404 Signed-off-by: Caleb Connolly --- board/qualcomm/dragonboard410c/dragonboard410c.c | 93 ++++++------------------ 1 file changed, 21 insertions(+), 72 deletions(-) (limited to 'board') diff --git a/board/qualcomm/dragonboard410c/dragonboard410c.c b/board/qualcomm/dragonboard410c/dragonboard410c.c index 350e0e9e20a..1adac07569a 100644 --- a/board/qualcomm/dragonboard410c/dragonboard410c.c +++ b/board/qualcomm/dragonboard410c/dragonboard410c.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -23,84 +24,32 @@ DECLARE_GLOBAL_DATA_PTR; -int dram_init(void) -{ - gd->ram_size = PHYS_SDRAM_1_SIZE; - - return 0; -} - -int dram_init_banksize(void) -{ - gd->bd->bi_dram[0].start = PHYS_SDRAM_1; - gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; - - return 0; -} +#define USB_HUB_RESET_GPIO 2 +#define USB_SW_SELECT_GPIO 3 int board_usb_init(int index, enum usb_init_type init) { - static struct udevice *pmic_gpio; - static struct gpio_desc hub_reset, usb_sel; - int ret = 0, node; - - if (!pmic_gpio) { - ret = uclass_get_device_by_name(UCLASS_GPIO, - "pm8916_gpios@c000", - &pmic_gpio); - if (ret < 0) { - printf("Failed to find pm8916_gpios@c000 node.\n"); - return ret; - } - } + struct udevice *usb; + int ret = 0; - /* Try to request gpios needed to start usb host on dragonboard */ - if (!dm_gpio_is_valid(&hub_reset)) { - node = fdt_subnode_offset(gd->fdt_blob, - dev_of_offset(pmic_gpio), - "usb_hub_reset_pm"); - if (node < 0) { - printf("Failed to find usb_hub_reset_pm dt node.\n"); - return node; - } - ret = gpio_request_by_name_nodev(offset_to_ofnode(node), - "gpios", 0, &hub_reset, 0); - if (ret < 0) { - printf("Failed to request usb_hub_reset_pm gpio.\n"); - return ret; - } - } - - if (!dm_gpio_is_valid(&usb_sel)) { - node = fdt_subnode_offset(gd->fdt_blob, - dev_of_offset(pmic_gpio), - "usb_sw_sel_pm"); - if (node < 0) { - printf("Failed to find usb_sw_sel_pm dt node.\n"); - return 0; - } - ret = gpio_request_by_name_nodev(offset_to_ofnode(node), - "gpios", 0, &usb_sel, 0); - if (ret < 0) { - printf("Failed to request usb_sw_sel_pm gpio.\n"); - return ret; - } + /* USB device */ + ret = device_find_global_by_ofnode(ofnode_path("/soc/usb"), &usb); + if (ret) { + printf("Cannot find USB device\n"); + return ret; } - if (init == USB_INIT_HOST) { - /* Start USB Hub */ - dm_gpio_set_dir_flags(&hub_reset, - GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); - mdelay(100); - /* Switch usb to host connectors */ - dm_gpio_set_dir_flags(&usb_sel, - GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); - mdelay(100); - } else { /* Device */ - /* Disable hub */ - dm_gpio_set_dir_flags(&hub_reset, GPIOD_IS_OUT); - /* Switch back to device connector */ - dm_gpio_set_dir_flags(&usb_sel, GPIOD_IS_OUT); + /* Select "default" or "device" pinctrl */ + switch (init) { + case USB_INIT_HOST: + pinctrl_select_state(usb, "default"); + break; + case USB_INIT_DEVICE: + pinctrl_select_state(usb, "device"); + break; + default: + debug("Unknown usb_init_type %d\n", init); + break; } return 0; -- cgit v1.2.3