// SPDX-License-Identifier: GPL-2.0+ /* * c67x00-drv.c: Cypress C67X00 USB Common infrastructure * * Copyright (C) 2006-2008 Barco N.V. * Derived from the Cypress cy7c67200/300 ezusb linux driver and * based on multiple host controller drivers inside the linux kernel. */ /* * This file implements the common infrastructure for using the c67x00. * It is both the link between the platform configuration and subdrivers and * the link between the common hardware parts and the subdrivers (e.g. * interrupt handling). * * The c67x00 has 2 SIE's (serial interface engine) which can be configured * to be host, device or OTG (with some limitations, E.G. only SIE1 can be OTG). * * Depending on the platform configuration, the SIE's are created and * the corresponding subdriver is initialized (c67x00_probe_sie). */ #include <linux/device.h> #include <linux/io.h> #include <linux/list.h> #include <linux/slab.h> #include <linux/module.h> #include <linux/usb.h> #include <linux/usb/c67x00.h> #include "c67x00.h" #include "c67x00-hcd.h" static void c67x00_probe_sie(struct c67x00_sie *sie, struct c67x00_device *dev, int sie_num) { … } static void c67x00_remove_sie(struct c67x00_sie *sie) { … } static irqreturn_t c67x00_irq(int irq, void *__dev) { … } /* ------------------------------------------------------------------------- */ static int c67x00_drv_probe(struct platform_device *pdev) { … } static void c67x00_drv_remove(struct platform_device *pdev) { … } static struct platform_driver c67x00_driver = …; module_platform_driver(…) …; MODULE_AUTHOR(…) …; MODULE_DESCRIPTION(…) …; MODULE_LICENSE(…) …; MODULE_ALIAS(…) …;