| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef __FOTG210_H |
| #define __FOTG210_H |
| |
| enum gemini_port { |
| GEMINI_PORT_NONE = 0, |
| GEMINI_PORT_0, |
| GEMINI_PORT_1, |
| }; |
| |
| struct fotg210 { |
| struct device *dev; |
| struct resource *res; |
| void __iomem *base; |
| struct clk *pclk; |
| struct regmap *map; |
| enum gemini_port port; |
| }; |
| |
| void fotg210_vbus(struct fotg210 *fotg, bool enable); |
| |
| #ifdef CONFIG_USB_FOTG210_HCD |
| int fotg210_hcd_probe(struct platform_device *pdev, struct fotg210 *fotg); |
| int fotg210_hcd_remove(struct platform_device *pdev); |
| int fotg210_hcd_init(void); |
| void fotg210_hcd_cleanup(void); |
| #else |
| static inline int fotg210_hcd_probe(struct platform_device *pdev, |
| struct fotg210 *fotg) |
| { |
| return 0; |
| } |
| static inline int fotg210_hcd_remove(struct platform_device *pdev) |
| { |
| return 0; |
| } |
| static inline int fotg210_hcd_init(void) |
| { |
| return 0; |
| } |
| static inline void fotg210_hcd_cleanup(void) |
| { |
| } |
| #endif |
| |
| #ifdef CONFIG_USB_FOTG210_UDC |
| int fotg210_udc_probe(struct platform_device *pdev, struct fotg210 *fotg); |
| int fotg210_udc_remove(struct platform_device *pdev); |
| #else |
| static inline int fotg210_udc_probe(struct platform_device *pdev, |
| struct fotg210 *fotg) |
| { |
| return 0; |
| } |
| static inline int fotg210_udc_remove(struct platform_device *pdev) |
| { |
| return 0; |
| } |
| #endif |
| |
| #endif /* __FOTG210_H */ |