Skip to content

Commit

Permalink
usb: Add support for Intel LJCA device
Browse files Browse the repository at this point in the history
Implements the USB part of Intel USB-I2C/GPIO/SPI adapter device
named "La Jolla Cove Adapter" (LJCA).

The communication between the various LJCA module drivers and the
hardware will be muxed/demuxed by this driver. Three modules (
I2C, GPIO, and SPI) are supported currently.

Each sub-module of LJCA device is identified by type field within
the LJCA message header.

The sub-modules of LJCA can use ljca_transfer() to issue a transfer
between host and hardware. And ljca_register_event_cb is exported
to LJCA sub-module drivers for hardware event subscription.

The minimum code in ASL that covers this board is
Scope (\_SB.PCI0.DWC3.RHUB.HS01)
    {
        Device (GPIO)
        {
            Name (_ADR, Zero)
            Name (_STA, 0x0F)
        }

        Device (I2C)
        {
            Name (_ADR, One)
            Name (_STA, 0x0F)
        }

        Device (SPI)
        {
            Name (_ADR, 0x02)
            Name (_STA, 0x0F)
        }
    }

Signed-off-by: Wentong Wu <wentong.wu@intel.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Tested-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Oliver Neukum <oneukum@suse.com>
Link: https://lore.kernel.org/r/1696833205-16716-2-git-send-email-wentong.wu@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Wentong Wu authored and Greg Kroah-Hartman committed Oct 11, 2023
1 parent efa33cd commit acd6199
Show file tree
Hide file tree
Showing 4 changed files with 1,061 additions and 0 deletions.
13 changes: 13 additions & 0 deletions drivers/usb/misc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,19 @@ config APPLE_MFI_FASTCHARGE

It is safe to say M here.

config USB_LJCA
tristate "Intel La Jolla Cove Adapter support"
select AUXILIARY_BUS
depends on USB && ACPI
help
This adds support for Intel La Jolla Cove USB-I2C/SPI/GPIO
Master Adapter (LJCA). Additional drivers such as I2C_LJCA,
GPIO_LJCA and SPI_LJCA must be enabled in order to use the
functionality of the device.

This driver can also be built as a module. If so, the module
will be called usb-ljca.

source "drivers/usb/misc/sisusbvga/Kconfig"

config USB_LD
Expand Down
1 change: 1 addition & 0 deletions drivers/usb/misc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ obj-$(CONFIG_USB_EMI26) += emi26.o
obj-$(CONFIG_USB_EMI62) += emi62.o
obj-$(CONFIG_USB_EZUSB_FX2) += ezusb.o
obj-$(CONFIG_APPLE_MFI_FASTCHARGE) += apple-mfi-fastcharge.o
obj-$(CONFIG_USB_LJCA) += usb-ljca.o
obj-$(CONFIG_USB_IDMOUSE) += idmouse.o
obj-$(CONFIG_USB_IOWARRIOR) += iowarrior.o
obj-$(CONFIG_USB_ISIGHTFW) += isight_firmware.o
Expand Down
Loading

0 comments on commit acd6199

Please sign in to comment.