1*fee331f6SAlexey Brodkin /* 2*fee331f6SAlexey Brodkin * Copyright (C) 2015 Alexey Brodkin <abrodkin@synopsys.com> 3*fee331f6SAlexey Brodkin * 4*fee331f6SAlexey Brodkin * SPDX-License-Identifier: GPL-2.0+ 5*fee331f6SAlexey Brodkin */ 6*fee331f6SAlexey Brodkin 7*fee331f6SAlexey Brodkin #include <common.h> 8*fee331f6SAlexey Brodkin #include <dm.h> 9*fee331f6SAlexey Brodkin #include "ohci.h" 10*fee331f6SAlexey Brodkin 11*fee331f6SAlexey Brodkin #if !defined(CONFIG_USB_OHCI_NEW) 12*fee331f6SAlexey Brodkin # error "Generic OHCI driver requires CONFIG_USB_OHCI_NEW" 13*fee331f6SAlexey Brodkin #endif 14*fee331f6SAlexey Brodkin 15*fee331f6SAlexey Brodkin struct generic_ohci { 16*fee331f6SAlexey Brodkin ohci_t ohci; 17*fee331f6SAlexey Brodkin }; 18*fee331f6SAlexey Brodkin 19*fee331f6SAlexey Brodkin static int ohci_usb_probe(struct udevice *dev) 20*fee331f6SAlexey Brodkin { 21*fee331f6SAlexey Brodkin struct ohci_regs *regs = (struct ohci_regs *)dev_get_addr(dev); 22*fee331f6SAlexey Brodkin 23*fee331f6SAlexey Brodkin return ohci_register(dev, regs); 24*fee331f6SAlexey Brodkin } 25*fee331f6SAlexey Brodkin 26*fee331f6SAlexey Brodkin static int ohci_usb_remove(struct udevice *dev) 27*fee331f6SAlexey Brodkin { 28*fee331f6SAlexey Brodkin return ohci_deregister(dev); 29*fee331f6SAlexey Brodkin } 30*fee331f6SAlexey Brodkin 31*fee331f6SAlexey Brodkin static const struct udevice_id ohci_usb_ids[] = { 32*fee331f6SAlexey Brodkin { .compatible = "generic-ohci" }, 33*fee331f6SAlexey Brodkin { } 34*fee331f6SAlexey Brodkin }; 35*fee331f6SAlexey Brodkin 36*fee331f6SAlexey Brodkin U_BOOT_DRIVER(ohci_generic) = { 37*fee331f6SAlexey Brodkin .name = "ohci_generic", 38*fee331f6SAlexey Brodkin .id = UCLASS_USB, 39*fee331f6SAlexey Brodkin .of_match = ohci_usb_ids, 40*fee331f6SAlexey Brodkin .probe = ohci_usb_probe, 41*fee331f6SAlexey Brodkin .remove = ohci_usb_remove, 42*fee331f6SAlexey Brodkin .ops = &ohci_usb_ops, 43*fee331f6SAlexey Brodkin .priv_auto_alloc_size = sizeof(struct generic_ohci), 44*fee331f6SAlexey Brodkin .flags = DM_FLAG_ALLOC_PRIV_DMA, 45*fee331f6SAlexey Brodkin }; 46