1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __FOTG210_H 3#define __FOTG210_H 4 5enum gemini_port { 6 GEMINI_PORT_NONE = 0, 7 GEMINI_PORT_0, 8 GEMINI_PORT_1, 9}; 10 11struct fotg210 { 12 struct device *dev; 13 struct resource *res; 14 void __iomem *base; 15 struct clk *pclk; 16 struct regmap *map; 17 enum gemini_port port; 18}; 19 20void fotg210_vbus(struct fotg210 *fotg, bool enable); 21 22#ifdef CONFIG_USB_FOTG210_HCD 23int fotg210_hcd_probe(struct platform_device *pdev, struct fotg210 *fotg); 24int fotg210_hcd_remove(struct platform_device *pdev); 25int fotg210_hcd_init(void); 26void fotg210_hcd_cleanup(void); 27#else 28static inline int fotg210_hcd_probe(struct platform_device *pdev, 29 struct fotg210 *fotg) 30{ 31 return 0; 32} 33static inline int fotg210_hcd_remove(struct platform_device *pdev) 34{ 35 return 0; 36} 37static inline int fotg210_hcd_init(void) 38{ 39 return 0; 40} 41static inline void fotg210_hcd_cleanup(void) 42{ 43} 44#endif 45 46#ifdef CONFIG_USB_FOTG210_UDC 47int fotg210_udc_probe(struct platform_device *pdev, struct fotg210 *fotg); 48int fotg210_udc_remove(struct platform_device *pdev); 49#else 50static inline int fotg210_udc_probe(struct platform_device *pdev, 51 struct fotg210 *fotg) 52{ 53 return 0; 54} 55static inline int fotg210_udc_remove(struct platform_device *pdev) 56{ 57 return 0; 58} 59#endif 60 61#endif /* __FOTG210_H */ 62