Loading drivers/usb/isp1760/Kconfig +42 −5 Original line number Diff line number Diff line config USB_ISP1760 tristate "NXP ISP 1760/1761 support" depends on USB depends on USB || USB_GADGET help Say Y or M here if your system as an ISP1760 USB host controller or an ISP1761 USB dual-role controller. Loading @@ -14,9 +14,46 @@ config USB_ISP1760 To compile this driver as a module, choose M here: the module will be called isp1760. config USB_ISP1760_HCD bool config USB_ISP1761_UDC boolean "NXP ISP1761 USB Device Controller" depends on USB_ISP1760 && USB_GADGET bool if USB_ISP1760 choice bool "ISP1760 Mode Selection" default USB_ISP1760_DUAL_ROLE if (USB && USB_GADGET) default USB_ISP1760_HOST_ROLE if (USB && !USB_GADGET) default USB_ISP1760_GADGET_ROLE if (!USB && USB_GADGET) config USB_ISP1760_HOST_ROLE bool "Host only mode" depends on USB=y || USB=USB_ISP1760 select USB_ISP1760_HCD help Select this if you want to use the ISP1760 in host mode only. The gadget function will be disabled. config USB_ISP1760_GADGET_ROLE bool "Gadget only mode" depends on USB_GADGET=y || USB_GADGET=USB_ISP1760 select USB_ISP1761_UDC help Select this if you want to use the ISP1760 in peripheral mode only. The host function will be disabled. config USB_ISP1760_DUAL_ROLE bool "Dual Role mode" depends on USB=y || USB=USB_ISP1760 depends on USB_GADGET=y || USB_GADGET=USB_ISP1760 select USB_ISP1760_HCD select USB_ISP1761_UDC help The NXP ISP1761 is a dual-role high-speed USB host and device controller. Select this if you want to use the ISP1760 in both host and peripheral modes. endchoice endif drivers/usb/isp1760/Makefile +2 −1 Original line number Diff line number Diff line isp1760-y := isp1760-core.o isp1760-hcd.o isp1760-if.o isp1760-y := isp1760-core.o isp1760-if.o isp1760-$(CONFIG_USB_ISP1760_HCD) += isp1760-hcd.o isp1760-$(CONFIG_USB_ISP1761_UDC) += isp1760-udc.o obj-$(CONFIG_USB_ISP1760) += isp1760.o drivers/usb/isp1760/isp1760-hcd.h +25 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ enum isp1760_queue_head_types { }; struct isp1760_hcd { #ifdef CONFIG_USB_ISP1760_HCD struct usb_hcd *hcd; u32 hcs_params; Loading @@ -64,8 +65,10 @@ struct isp1760_hcd { unsigned i_thresh; unsigned long reset_done; unsigned long next_statechange; #endif }; #ifdef CONFIG_USB_ISP1760_HCD int isp1760_hcd_register(struct isp1760_hcd *priv, void __iomem *regs, struct resource *mem, int irq, unsigned long irqflags, struct device *dev); Loading @@ -73,5 +76,27 @@ void isp1760_hcd_unregister(struct isp1760_hcd *priv); int isp1760_init_kmem_once(void); void isp1760_deinit_kmem_cache(void); #else static inline int isp1760_hcd_register(struct isp1760_hcd *priv, void __iomem *regs, struct resource *mem, int irq, unsigned long irqflags, struct device *dev) { return 0; } static inline void isp1760_hcd_unregister(struct isp1760_hcd *priv) { } static inline int isp1760_init_kmem_once(void) { return 0; } static inline void isp1760_deinit_kmem_cache(void) { } #endif #endif /* _ISP1760_HCD_H_ */ drivers/usb/isp1760/isp1760-udc.h +2 −2 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ struct isp1760_ep { * connected: Tracks gadget driver bus connection state */ struct isp1760_udc { #if CONFIG_USB_ISP1761_UDC #ifdef CONFIG_USB_ISP1761_UDC struct isp1760_device *isp; int irq; Loading @@ -87,7 +87,7 @@ struct isp1760_udc { #endif }; #if CONFIG_USB_ISP1761_UDC #ifdef CONFIG_USB_ISP1761_UDC int isp1760_udc_register(struct isp1760_device *isp, int irq, unsigned long irqflags); void isp1760_udc_unregister(struct isp1760_device *isp); Loading Loading
drivers/usb/isp1760/Kconfig +42 −5 Original line number Diff line number Diff line config USB_ISP1760 tristate "NXP ISP 1760/1761 support" depends on USB depends on USB || USB_GADGET help Say Y or M here if your system as an ISP1760 USB host controller or an ISP1761 USB dual-role controller. Loading @@ -14,9 +14,46 @@ config USB_ISP1760 To compile this driver as a module, choose M here: the module will be called isp1760. config USB_ISP1760_HCD bool config USB_ISP1761_UDC boolean "NXP ISP1761 USB Device Controller" depends on USB_ISP1760 && USB_GADGET bool if USB_ISP1760 choice bool "ISP1760 Mode Selection" default USB_ISP1760_DUAL_ROLE if (USB && USB_GADGET) default USB_ISP1760_HOST_ROLE if (USB && !USB_GADGET) default USB_ISP1760_GADGET_ROLE if (!USB && USB_GADGET) config USB_ISP1760_HOST_ROLE bool "Host only mode" depends on USB=y || USB=USB_ISP1760 select USB_ISP1760_HCD help Select this if you want to use the ISP1760 in host mode only. The gadget function will be disabled. config USB_ISP1760_GADGET_ROLE bool "Gadget only mode" depends on USB_GADGET=y || USB_GADGET=USB_ISP1760 select USB_ISP1761_UDC help Select this if you want to use the ISP1760 in peripheral mode only. The host function will be disabled. config USB_ISP1760_DUAL_ROLE bool "Dual Role mode" depends on USB=y || USB=USB_ISP1760 depends on USB_GADGET=y || USB_GADGET=USB_ISP1760 select USB_ISP1760_HCD select USB_ISP1761_UDC help The NXP ISP1761 is a dual-role high-speed USB host and device controller. Select this if you want to use the ISP1760 in both host and peripheral modes. endchoice endif
drivers/usb/isp1760/Makefile +2 −1 Original line number Diff line number Diff line isp1760-y := isp1760-core.o isp1760-hcd.o isp1760-if.o isp1760-y := isp1760-core.o isp1760-if.o isp1760-$(CONFIG_USB_ISP1760_HCD) += isp1760-hcd.o isp1760-$(CONFIG_USB_ISP1761_UDC) += isp1760-udc.o obj-$(CONFIG_USB_ISP1760) += isp1760.o
drivers/usb/isp1760/isp1760-hcd.h +25 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ enum isp1760_queue_head_types { }; struct isp1760_hcd { #ifdef CONFIG_USB_ISP1760_HCD struct usb_hcd *hcd; u32 hcs_params; Loading @@ -64,8 +65,10 @@ struct isp1760_hcd { unsigned i_thresh; unsigned long reset_done; unsigned long next_statechange; #endif }; #ifdef CONFIG_USB_ISP1760_HCD int isp1760_hcd_register(struct isp1760_hcd *priv, void __iomem *regs, struct resource *mem, int irq, unsigned long irqflags, struct device *dev); Loading @@ -73,5 +76,27 @@ void isp1760_hcd_unregister(struct isp1760_hcd *priv); int isp1760_init_kmem_once(void); void isp1760_deinit_kmem_cache(void); #else static inline int isp1760_hcd_register(struct isp1760_hcd *priv, void __iomem *regs, struct resource *mem, int irq, unsigned long irqflags, struct device *dev) { return 0; } static inline void isp1760_hcd_unregister(struct isp1760_hcd *priv) { } static inline int isp1760_init_kmem_once(void) { return 0; } static inline void isp1760_deinit_kmem_cache(void) { } #endif #endif /* _ISP1760_HCD_H_ */
drivers/usb/isp1760/isp1760-udc.h +2 −2 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ struct isp1760_ep { * connected: Tracks gadget driver bus connection state */ struct isp1760_udc { #if CONFIG_USB_ISP1761_UDC #ifdef CONFIG_USB_ISP1761_UDC struct isp1760_device *isp; int irq; Loading @@ -87,7 +87,7 @@ struct isp1760_udc { #endif }; #if CONFIG_USB_ISP1761_UDC #ifdef CONFIG_USB_ISP1761_UDC int isp1760_udc_register(struct isp1760_device *isp, int irq, unsigned long irqflags); void isp1760_udc_unregister(struct isp1760_device *isp); Loading