Merge tag 'ti-v2020.07-rc3' of https://gitlab.denx.de/u-boot/custodians/u-boot-ti
[oweals/u-boot.git] / drivers / usb / host / ohci-pci.c
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
17 static 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
25 static int ohci_pci_remove(struct udevice *dev)
26 {
27         return ohci_deregister(dev);
28 }
29
30 static const struct udevice_id ohci_pci_ids[] = {
31         { .compatible = "ohci-pci" },
32         { }
33 };
34
35 U_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
47 static struct pci_device_id ohci_pci_supported[] = {
48         { PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_OHCI, ~0) },
49         {},
50 };
51
52 U_BOOT_PCI_DEVICE(ohci_pci, ohci_pci_supported);