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