• Roland Stigge's avatar
    USB: Add driver for NXP ISP1301 USB transceiver · 8b7c3b68
    Roland Stigge authored
    
    
    This new driver registers the NXP ISP1301 chip via the I2C subsystem.  The chip
    is the USB transceiver shared by ohci-nxp, lpc32xx_udc (gadget) and
    isp1301_omap.
    
    ISP1301 is a very low-level driver that primarily separates out the I2C client
    registration of the ISP1301 chip (including instantiation via DT), used by
    other drivers, and declares the chip's registers. It's only a helper driver for
    some OHCI and USB device drivers.  The driver can be considered as a register
    set extension of ohci-nxp, lpc32xx-udc and isp1301_omap, which in turn know
    best what to do with the low level functionality (individual ISP1301 registers
    and timing, see the different initialization strategies in those drivers).
    Those drivers previously internally duplicated ISP1301 register definitions
    which is solved by this new isp1301 driver. The ISP1301 registers exposed via
    isp1301.h can be accessed by other drivers using it with standard i2c_smbus_*()
    accesses.
    
    Following patches let the respective USB host and gadget drivers use this
    driver, instead of duplicating ISP1301 handling.
    
    Signed-off-by: default avatarRoland Stigge <stigge@antcom.de>
    Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    8b7c3b68