123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // SPDX-License-Identifier: GPL-2.0+
- /*
- * Copyright (C) 2015, Google, Inc
- */
- #include <common.h>
- #include <dm.h>
- #include <asm/gpio.h>
- #include <dm/device-internal.h>
- #include <dm/uclass-internal.h>
- #define GPIO_BANKE_NAME "gpioe"
- int misc_init_r(void)
- {
- struct udevice *dev;
- struct gpio_desc desc;
- int ret;
- /*
- * Turn on USB VBUS for the two USB ports on the board.
- * Each port's VBUS is controlled by a GPIO pin.
- */
- ret = uclass_find_device_by_name(UCLASS_GPIO, GPIO_BANKE_NAME, &dev);
- if (ret) {
- debug("%s: GPIO %s device cannot be not found (ret=%d)\n",
- __func__, GPIO_BANKE_NAME, ret);
- return ret;
- }
- ret = device_probe(dev);
- if (ret) {
- debug("%s: GPIO %s device probe failed (ret=%d)\n",
- __func__, GPIO_BANKE_NAME, ret);
- return ret;
- }
- desc.dev = dev;
- desc.flags = GPIOD_IS_OUT;
- /* GPIO E8 controls the bottom port */
- desc.offset = 8;
- ret = dm_gpio_request(&desc, "usb_host_en0");
- if (ret)
- return ret;
- dm_gpio_set_value(&desc, 1);
- /* GPIO E9 controls the upper port */
- desc.offset = 9;
- ret = dm_gpio_request(&desc, "usb_host_en1");
- if (ret)
- return ret;
- dm_gpio_set_value(&desc, 1);
- return 0;
- }
|