uboot/drivers/usb/host/ohci-pci.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * Copyright (c) 2019
   4 * Heiko Schocher, DENX Software Engineering, hs@denx.de.
   5 *
   6 */
   7
   8#include <common.h>
   9#include <dm.h>
  10#include <errno.h>
  11#include <pci.h>
  12#include <usb.h>
  13#include <asm/io.h>
  14
  15#include "ohci.h"
  16
  17static int ohci_pci_probe(struct udevice *dev)
  18{
  19        struct ohci_regs *regs;
  20
  21        regs = dm_pci_map_bar(dev, PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
  22        return ohci_register(dev, regs);
  23}
  24
  25static int ohci_pci_remove(struct udevice *dev)
  26{
  27        return ohci_deregister(dev);
  28}
  29
  30static const struct udevice_id ohci_pci_ids[] = {
  31        { .compatible = "ohci-pci" },
  32        { }
  33};
  34
  35U_BOOT_DRIVER(ohci_pci) = {
  36        .name   = "ohci_pci",
  37        .id     = UCLASS_USB,
  38        .probe = ohci_pci_probe,
  39        .remove = ohci_pci_remove,
  40        .of_match = ohci_pci_ids,
  41        .ops    = &ohci_usb_ops,
  42        .platdata_auto_alloc_size = sizeof(struct usb_platdata),
  43        .priv_auto_alloc_size = sizeof(ohci_t),
  44        .flags  = DM_FLAG_ALLOC_PRIV_DMA,
  45};
  46
  47static struct pci_device_id ohci_pci_supported[] = {
  48        { PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_OHCI, ~0) },
  49        {},
  50};
  51
  52U_BOOT_PCI_DEVICE(ohci_pci, ohci_pci_supported);
  53