df2bbf3f35
The HiKey960 has a fairly complex USB configuration due to it needing to support a USB-C port for host/device mode and multiple USB-A ports in host mode using a single USB controller. See schematics here: https://github.com/96boards/documentation/raw/master/consumer/hikey/hikey960/hardware-docs/HiKey960_Schematics.pdf This driver acts as a usb-role-switch intermediary, intercepting the role switch notifications from the tcpm code, and passing them on to the dwc3 core. In doing so, it also controls the onboard hub and power gpios in order to properly route the data lines between the USB-C port and the onboard hub to the USB-A ports. NOTE: It was noted that controlling the TYPEC_VBUS_POWER_OFF and TYPEC_VBUS_POWER_ON values here is not reccomended. I'm looking for a way to remove that bit from the logic here, but wanted to still get feedback on this approach. Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Rob Herring <robh+dt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> CC: ShuFan Lee <shufan_lee@richtek.com> Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com> Cc: Suzuki K Poulose <suzuki.poulose@arm.com> Cc: Chunfeng Yun <chunfeng.yun@mediatek.com> Cc: Yu Chen <chenyu56@huawei.com> Cc: Felipe Balbi <balbi@kernel.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Andy Shevchenko <andy.shevchenko@gmail.com> Cc: Jun Li <lijun.kernel@gmail.com> Cc: Valentin Schneider <valentin.schneider@arm.com> Cc: Jack Pham <jackp@codeaurora.org> Cc: linux-usb@vger.kernel.org Cc: devicetree@vger.kernel.org Bug: 146450171 Link: https://lore.kernel.org/lkml/20191212014233.32799-9-john.stultz@linaro.org/ Signed-off-by: Yu Chen <chenyu56@huawei.com> [jstultz: Major rework to make the driver a usb-role-switch intermediary] Signed-off-by: John Stultz <john.stultz@linaro.org> Change-Id: Icf381520abd46d083750d01f91e478321560fbf9
506 lines
17 KiB
Plaintext
506 lines
17 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# Misc strange devices
|
|
#
|
|
|
|
menu "Misc devices"
|
|
|
|
config SENSORS_LIS3LV02D
|
|
tristate
|
|
depends on INPUT
|
|
select INPUT_POLLDEV
|
|
|
|
config AD525X_DPOT
|
|
tristate "Analog Devices Digital Potentiometers"
|
|
depends on (I2C || SPI) && SYSFS
|
|
help
|
|
If you say yes here, you get support for the Analog Devices
|
|
AD5258, AD5259, AD5251, AD5252, AD5253, AD5254, AD5255
|
|
AD5160, AD5161, AD5162, AD5165, AD5200, AD5201, AD5203,
|
|
AD5204, AD5206, AD5207, AD5231, AD5232, AD5233, AD5235,
|
|
AD5260, AD5262, AD5263, AD5290, AD5291, AD5292, AD5293,
|
|
AD7376, AD8400, AD8402, AD8403, ADN2850, AD5241, AD5242,
|
|
AD5243, AD5245, AD5246, AD5247, AD5248, AD5280, AD5282,
|
|
ADN2860, AD5273, AD5171, AD5170, AD5172, AD5173, AD5270,
|
|
AD5271, AD5272, AD5274
|
|
digital potentiometer chips.
|
|
|
|
See Documentation/misc-devices/ad525x_dpot.txt for the
|
|
userspace interface.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called ad525x_dpot.
|
|
|
|
config AD525X_DPOT_I2C
|
|
tristate "support I2C bus connection"
|
|
depends on AD525X_DPOT && I2C
|
|
help
|
|
Say Y here if you have a digital potentiometers hooked to an I2C bus.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called ad525x_dpot-i2c.
|
|
|
|
config AD525X_DPOT_SPI
|
|
tristate "support SPI bus connection"
|
|
depends on AD525X_DPOT && SPI_MASTER
|
|
help
|
|
Say Y here if you have a digital potentiometers hooked to an SPI bus.
|
|
|
|
If unsure, say N (but it's safe to say "Y").
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called ad525x_dpot-spi.
|
|
|
|
config ATMEL_TCLIB
|
|
bool "Atmel AT32/AT91 Timer/Counter Library"
|
|
depends on ARCH_AT91
|
|
help
|
|
Select this if you want a library to allocate the Timer/Counter
|
|
blocks found on many Atmel processors. This facilitates using
|
|
these blocks by different drivers despite processor differences.
|
|
|
|
config DUMMY_IRQ
|
|
tristate "Dummy IRQ handler"
|
|
---help---
|
|
This module accepts a single 'irq' parameter, which it should register for.
|
|
The sole purpose of this module is to help with debugging of systems on
|
|
which spurious IRQs would happen on disabled IRQ vector.
|
|
|
|
config IBM_ASM
|
|
tristate "Device driver for IBM RSA service processor"
|
|
depends on X86 && PCI && INPUT
|
|
depends on SERIAL_8250 || SERIAL_8250=n
|
|
---help---
|
|
This option enables device driver support for in-band access to the
|
|
IBM RSA (Condor) service processor in eServer xSeries systems.
|
|
The ibmasm device driver allows user space application to access
|
|
ASM (Advanced Systems Management) functions on the service
|
|
processor. The driver is meant to be used in conjunction with
|
|
a user space API.
|
|
The ibmasm driver also enables the OS to use the UART on the
|
|
service processor board as a regular serial port. To make use of
|
|
this feature serial driver support (CONFIG_SERIAL_8250) must be
|
|
enabled.
|
|
|
|
WARNING: This software may not be supported or function
|
|
correctly on your IBM server. Please consult the IBM ServerProven
|
|
website <http://www-03.ibm.com/systems/info/x86servers/serverproven/compat/us/>
|
|
for information on the specific driver level and support statement
|
|
for your IBM server.
|
|
|
|
config IBMVMC
|
|
tristate "IBM Virtual Management Channel support"
|
|
depends on PPC_PSERIES
|
|
help
|
|
This is the IBM POWER Virtual Management Channel
|
|
|
|
This driver is to be used for the POWER Virtual
|
|
Management Channel virtual adapter on the PowerVM
|
|
platform. It provides both request/response and
|
|
async message support through the /dev/ibmvmc node.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called ibmvmc.
|
|
|
|
config PHANTOM
|
|
tristate "Sensable PHANToM (PCI)"
|
|
depends on PCI
|
|
help
|
|
Say Y here if you want to build a driver for Sensable PHANToM device.
|
|
|
|
This driver is only for PCI PHANToMs.
|
|
|
|
If you choose to build module, its name will be phantom. If unsure,
|
|
say N here.
|
|
|
|
config INTEL_MID_PTI
|
|
tristate "Parallel Trace Interface for MIPI P1149.7 cJTAG standard"
|
|
depends on PCI && TTY && (X86_INTEL_MID || COMPILE_TEST)
|
|
help
|
|
The PTI (Parallel Trace Interface) driver directs
|
|
trace data routed from various parts in the system out
|
|
through an Intel Penwell PTI port and out of the mobile
|
|
device for analysis with a debugging tool (Lauterbach or Fido).
|
|
|
|
You should select this driver if the target kernel is meant for
|
|
an Intel Atom (non-netbook) mobile device containing a MIPI
|
|
P1149.7 standard implementation.
|
|
|
|
config TIFM_CORE
|
|
tristate "TI Flash Media interface support"
|
|
depends on PCI
|
|
help
|
|
If you want support for Texas Instruments(R) Flash Media adapters
|
|
you should select this option and then also choose an appropriate
|
|
host adapter, such as 'TI Flash Media PCI74xx/PCI76xx host adapter
|
|
support', if you have a TI PCI74xx compatible card reader, for
|
|
example.
|
|
You will also have to select some flash card format drivers. MMC/SD
|
|
cards are supported via 'MMC/SD Card support: TI Flash Media MMC/SD
|
|
Interface support (MMC_TIFM_SD)'.
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called tifm_core.
|
|
|
|
config TIFM_7XX1
|
|
tristate "TI Flash Media PCI74xx/PCI76xx host adapter support"
|
|
depends on PCI && TIFM_CORE
|
|
default TIFM_CORE
|
|
help
|
|
This option enables support for Texas Instruments(R) PCI74xx and
|
|
PCI76xx families of Flash Media adapters, found in many laptops.
|
|
To make actual use of the device, you will have to select some
|
|
flash card format drivers, as outlined in the TIFM_CORE Help.
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called tifm_7xx1.
|
|
|
|
config ICS932S401
|
|
tristate "Integrated Circuits ICS932S401"
|
|
depends on I2C
|
|
help
|
|
If you say yes here you get support for the Integrated Circuits
|
|
ICS932S401 clock control chips.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called ics932s401.
|
|
|
|
config ATMEL_SSC
|
|
tristate "Device driver for Atmel SSC peripheral"
|
|
depends on HAS_IOMEM && (ARCH_AT91 || COMPILE_TEST)
|
|
---help---
|
|
This option enables device driver support for Atmel Synchronized
|
|
Serial Communication peripheral (SSC).
|
|
|
|
The SSC peripheral supports a wide variety of serial frame based
|
|
communications, i.e. I2S, SPI, etc.
|
|
|
|
If unsure, say N.
|
|
|
|
config ENCLOSURE_SERVICES
|
|
tristate "Enclosure Services"
|
|
help
|
|
Provides support for intelligent enclosures (bays which
|
|
contain storage devices). You also need either a host
|
|
driver (SCSI/ATA) which supports enclosures
|
|
or a SCSI enclosure device (SES) to use these services.
|
|
|
|
config SGI_XP
|
|
tristate "Support communication between SGI SSIs"
|
|
depends on NET
|
|
depends on (IA64_SGI_UV || X86_UV) && SMP
|
|
depends on X86_64 || BROKEN
|
|
select SGI_GRU if X86_64 && SMP
|
|
---help---
|
|
An SGI machine can be divided into multiple Single System
|
|
Images which act independently of each other and have
|
|
hardware based memory protection from the others. Enabling
|
|
this feature will allow for direct communication between SSIs
|
|
based on a network adapter and DMA messaging.
|
|
|
|
config CS5535_MFGPT
|
|
tristate "CS5535/CS5536 Geode Multi-Function General Purpose Timer (MFGPT) support"
|
|
depends on MFD_CS5535
|
|
help
|
|
This driver provides access to MFGPT functionality for other
|
|
drivers that need timers. MFGPTs are available in the CS5535 and
|
|
CS5536 companion chips that are found in AMD Geode and several
|
|
other platforms. They have a better resolution and max interval
|
|
than the generic PIT, and are suitable for use as high-res timers.
|
|
You probably don't want to enable this manually; other drivers that
|
|
make use of it should enable it.
|
|
|
|
config CS5535_MFGPT_DEFAULT_IRQ
|
|
int
|
|
depends on CS5535_MFGPT
|
|
default 7
|
|
help
|
|
MFGPTs on the CS5535 require an interrupt. The selected IRQ
|
|
can be overridden as a module option as well as by driver that
|
|
use the cs5535_mfgpt_ API; however, different architectures might
|
|
want to use a different IRQ by default. This is here for
|
|
architectures to set as necessary.
|
|
|
|
config CS5535_CLOCK_EVENT_SRC
|
|
tristate "CS5535/CS5536 high-res timer (MFGPT) events"
|
|
depends on GENERIC_CLOCKEVENTS && CS5535_MFGPT
|
|
help
|
|
This driver provides a clock event source based on the MFGPT
|
|
timer(s) in the CS5535 and CS5536 companion chips.
|
|
MFGPTs have a better resolution and max interval than the
|
|
generic PIT, and are suitable for use as high-res timers.
|
|
|
|
config HP_ILO
|
|
tristate "Channel interface driver for the HP iLO processor"
|
|
depends on PCI
|
|
help
|
|
The channel interface driver allows applications to communicate
|
|
with iLO management processors present on HP ProLiant servers.
|
|
Upon loading, the driver creates /dev/hpilo/dXccbN files, which
|
|
can be used to gather data from the management processor, via
|
|
read and write system calls.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called hpilo.
|
|
|
|
config QCOM_COINCELL
|
|
tristate "Qualcomm coincell charger support"
|
|
depends on MFD_SPMI_PMIC || COMPILE_TEST
|
|
help
|
|
This driver supports the coincell block found inside of
|
|
Qualcomm PMICs. The coincell charger provides a means to
|
|
charge a coincell battery or backup capacitor which is used
|
|
to maintain PMIC register and RTC state in the absence of
|
|
external power.
|
|
|
|
config QCOM_FASTRPC
|
|
tristate "Qualcomm FastRPC"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on RPMSG
|
|
select DMA_SHARED_BUFFER
|
|
help
|
|
Provides a communication mechanism that allows for clients to
|
|
make remote method invocations across processor boundary to
|
|
applications DSP processor. Say M if you want to enable this
|
|
module.
|
|
|
|
config SGI_GRU
|
|
tristate "SGI GRU driver"
|
|
depends on X86_UV && SMP
|
|
select MMU_NOTIFIER
|
|
---help---
|
|
The GRU is a hardware resource located in the system chipset. The GRU
|
|
contains memory that can be mmapped into the user address space. This memory is
|
|
used to communicate with the GRU to perform functions such as load/store,
|
|
scatter/gather, bcopy, AMOs, etc. The GRU is directly accessed by user
|
|
instructions using user virtual addresses. GRU instructions (ex., bcopy) use
|
|
user virtual addresses for operands.
|
|
|
|
If you are not running on a SGI UV system, say N.
|
|
|
|
config SGI_GRU_DEBUG
|
|
bool "SGI GRU driver debug"
|
|
depends on SGI_GRU
|
|
---help---
|
|
This option enables additional debugging code for the SGI GRU driver.
|
|
If you are unsure, say N.
|
|
|
|
config APDS9802ALS
|
|
tristate "Medfield Avago APDS9802 ALS Sensor module"
|
|
depends on I2C
|
|
help
|
|
If you say yes here you get support for the ALS APDS9802 ambient
|
|
light sensor.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called apds9802als.
|
|
|
|
config ISL29003
|
|
tristate "Intersil ISL29003 ambient light sensor"
|
|
depends on I2C && SYSFS
|
|
help
|
|
If you say yes here you get support for the Intersil ISL29003
|
|
ambient light sensor.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called isl29003.
|
|
|
|
config ISL29020
|
|
tristate "Intersil ISL29020 ambient light sensor"
|
|
depends on I2C
|
|
help
|
|
If you say yes here you get support for the Intersil ISL29020
|
|
ambient light sensor.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called isl29020.
|
|
|
|
config SENSORS_TSL2550
|
|
tristate "Taos TSL2550 ambient light sensor"
|
|
depends on I2C && SYSFS
|
|
help
|
|
If you say yes here you get support for the Taos TSL2550
|
|
ambient light sensor.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called tsl2550.
|
|
|
|
config SENSORS_BH1770
|
|
tristate "BH1770GLC / SFH7770 combined ALS - Proximity sensor"
|
|
depends on I2C
|
|
---help---
|
|
Say Y here if you want to build a driver for BH1770GLC (ROHM) or
|
|
SFH7770 (Osram) combined ambient light and proximity sensor chip.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called bh1770glc. If unsure, say N here.
|
|
|
|
config SENSORS_APDS990X
|
|
tristate "APDS990X combined als and proximity sensors"
|
|
depends on I2C
|
|
---help---
|
|
Say Y here if you want to build a driver for Avago APDS990x
|
|
combined ambient light and proximity sensor chip.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called apds990x. If unsure, say N here.
|
|
|
|
config HMC6352
|
|
tristate "Honeywell HMC6352 compass"
|
|
depends on I2C
|
|
help
|
|
This driver provides support for the Honeywell HMC6352 compass,
|
|
providing configuration and heading data via sysfs.
|
|
|
|
config DS1682
|
|
tristate "Dallas DS1682 Total Elapsed Time Recorder with Alarm"
|
|
depends on I2C
|
|
help
|
|
If you say yes here you get support for Dallas Semiconductor
|
|
DS1682 Total Elapsed Time Recorder.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called ds1682.
|
|
|
|
config VMWARE_BALLOON
|
|
tristate "VMware Balloon Driver"
|
|
depends on VMWARE_VMCI && X86 && HYPERVISOR_GUEST
|
|
select MEMORY_BALLOON
|
|
help
|
|
This is VMware physical memory management driver which acts
|
|
like a "balloon" that can be inflated to reclaim physical pages
|
|
by reserving them in the guest and invalidating them in the
|
|
monitor, freeing up the underlying machine pages so they can
|
|
be allocated to other guests. The balloon can also be deflated
|
|
to allow the guest to use more physical memory.
|
|
|
|
If unsure, say N.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called vmw_balloon.
|
|
|
|
config PCH_PHUB
|
|
tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB"
|
|
select GENERIC_NET_UTILS
|
|
depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
|
|
help
|
|
This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
|
|
Intel Topcliff which is an IOH(Input/Output Hub) for x86 embedded
|
|
processor. The Topcliff has MAC address and Option ROM data in SROM.
|
|
This driver can access MAC address and Option ROM data in SROM.
|
|
|
|
This driver also can be used for LAPIS Semiconductor's IOH,
|
|
ML7213/ML7223/ML7831.
|
|
ML7213 which is for IVI(In-Vehicle Infotainment) use.
|
|
ML7223 IOH is for MP(Media Phone) use.
|
|
ML7831 IOH is for general purpose use.
|
|
ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
|
|
ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called pch_phub.
|
|
|
|
config LATTICE_ECP3_CONFIG
|
|
tristate "Lattice ECP3 FPGA bitstream configuration via SPI"
|
|
depends on SPI && SYSFS
|
|
select FW_LOADER
|
|
default n
|
|
help
|
|
This option enables support for bitstream configuration (programming
|
|
or loading) of the Lattice ECP3 FPGA family via SPI.
|
|
|
|
If unsure, say N.
|
|
|
|
config SRAM
|
|
bool "Generic on-chip SRAM driver"
|
|
depends on HAS_IOMEM
|
|
select GENERIC_ALLOCATOR
|
|
select SRAM_EXEC if ARM
|
|
help
|
|
This driver allows you to declare a memory region to be managed by
|
|
the genalloc API. It is supposed to be used for small on-chip SRAM
|
|
areas found on many SoCs.
|
|
|
|
config SRAM_EXEC
|
|
bool
|
|
|
|
config VEXPRESS_SYSCFG
|
|
bool "Versatile Express System Configuration driver"
|
|
depends on VEXPRESS_CONFIG
|
|
default y
|
|
help
|
|
ARM Ltd. Versatile Express uses specialised platform configuration
|
|
bus. System Configuration interface is one of the possible means
|
|
of generating transactions on this bus.
|
|
|
|
config PCI_ENDPOINT_TEST
|
|
depends on PCI
|
|
select CRC32
|
|
tristate "PCI Endpoint Test driver"
|
|
---help---
|
|
Enable this configuration option to enable the host side test driver
|
|
for PCI Endpoint.
|
|
|
|
config XILINX_SDFEC
|
|
tristate "Xilinx SDFEC 16"
|
|
depends on HAS_IOMEM
|
|
help
|
|
This option enables support for the Xilinx SDFEC (Soft Decision
|
|
Forward Error Correction) driver. This enables a char driver
|
|
for the SDFEC.
|
|
|
|
You may select this driver if your design instantiates the
|
|
SDFEC(16nm) hardened block. To compile this as a module choose M.
|
|
|
|
If unsure, say N.
|
|
|
|
config MISC_RTSX
|
|
tristate
|
|
default MISC_RTSX_PCI || MISC_RTSX_USB
|
|
|
|
config UID_SYS_STATS
|
|
bool "Per-UID statistics"
|
|
depends on PROFILING && TASK_XACCT && TASK_IO_ACCOUNTING
|
|
help
|
|
Per UID based cpu time statistics exported to /proc/uid_cputime
|
|
Per UID based io statistics exported to /proc/uid_io
|
|
Per UID based procstat control in /proc/uid_procstat
|
|
|
|
config UID_SYS_STATS_DEBUG
|
|
bool "Per-TASK statistics"
|
|
depends on UID_SYS_STATS
|
|
default n
|
|
help
|
|
Per TASK based io statistics exported to /proc/uid_io
|
|
|
|
config PVPANIC
|
|
tristate "pvpanic device support"
|
|
depends on HAS_IOMEM && (ACPI || OF)
|
|
help
|
|
This driver provides support for the pvpanic device. pvpanic is
|
|
a paravirtualized device provided by QEMU; it lets a virtual machine
|
|
(guest) communicate panic events to the host.
|
|
|
|
config HISI_HIKEY_USB
|
|
tristate "USB functionality of HiSilicon Hikey Platform"
|
|
depends on OF && GPIOLIB
|
|
help
|
|
If you say yes here you get support for usb functionality of HiSilicon Hikey Platform.
|
|
|
|
source "drivers/misc/c2port/Kconfig"
|
|
source "drivers/misc/eeprom/Kconfig"
|
|
source "drivers/misc/cb710/Kconfig"
|
|
source "drivers/misc/ti-st/Kconfig"
|
|
source "drivers/misc/lis3lv02d/Kconfig"
|
|
source "drivers/misc/altera-stapl/Kconfig"
|
|
source "drivers/misc/mei/Kconfig"
|
|
source "drivers/misc/vmw_vmci/Kconfig"
|
|
source "drivers/misc/mic/Kconfig"
|
|
source "drivers/misc/genwqe/Kconfig"
|
|
source "drivers/misc/echo/Kconfig"
|
|
source "drivers/misc/cxl/Kconfig"
|
|
source "drivers/misc/ocxl/Kconfig"
|
|
source "drivers/misc/cardreader/Kconfig"
|
|
source "drivers/misc/habanalabs/Kconfig"
|
|
endmenu
|