PROJECT NOT UNDER ACTIVE MANAGEMENT
This project will no longer be maintained by Intel.
Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.
Intel no longer accepts patches to this project.
If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.
Contact: webadmin@linux.intel.com
This repository supports Intel Vision Sensing Controller(IVSC) on Intel Alder Lake platforms. The driver has already been upstreamed to Linux main branch.
Three ways are available:
- build with kernel source tree
- build out of kernel source tree
- build with dkms
-
Tested with kernel 5.12-rc4 and 5.13-rc5
-
Check out kernel
-
Copy repo content to kernel source
-
Modify related Kconfig and Makefile
-
Add to drivers/mfd/Kconfig
config MFD_LJCA
tristate "Intel La Jolla Cove Adapter support"
select MFD_CORE
depends on USB
help
This adds support for Intel La Jolla Cove USB-I2C/SPI/GPIO
Adapter (LJCA). Additional drivers such as I2C_LJCA,
GPIO_LJCA, etc. must be enabled in order to use the
functionality of the device.
- add to drivers/mfd/Makefile
obj-$(CONFIG_MFD_LJCA) += ljca.o
- Add to drivers/spi/Kconfig
config SPI_LJCA
tristate "INTEL La Jolla Cove Adapter SPI support"
depends on MFD_LJCA
help
Select this option to enable SPI driver for the INTEL
La Jolla Cove Adapter (LJCA) board.
This driver can also be built as a module. If so, the module
will be called spi-ljca.
- Add to drivers/spi/Makefile
obj-$(CONFIG_SPI_LJCA) += spi-ljca.o
- Add to drivers/gpio/Kconfig
config GPIO_LJCA
tristate "INTEL La Jolla Cove Adapter GPIO support"
depends on MFD_LJCA
help
Select this option to enable GPIO driver for the INTEL
La Jolla Cove Adapter (LJCA) board.
This driver can also be built as a module. If so, the module
will be called gpio-ljca.
- Add to drivers/gpio/Makefile
obj-$(CONFIG_GPIO_LJCA) += gpio-ljca.o
- Add to drivers/i2c/busses/Kconfig
config I2C_LJCA
tristate "I2C functionality of INTEL La Jolla Cove Adapter"
depends on MFD_LJCA
help
If you say yes to this option, I2C functionality support of INTEL
La Jolla Cove Adapter (LJCA) will be included.
This driver can also be built as a module. If so, the module
will be called i2c-ljca.
- Add to drivers/i2c/busses/Makefile
obj-$(CONFIG_I2C_LJCA) += i2c-ljca.o
- Add to drivers/misc/mei/Kconfig
config INTEL_MEI_VSC
tristate "Intel Vision Sensing Controller device with ME interface"
select INTEL_MEI
depends on X86 && SPI
help
MEI over SPI for Intel Vision Sensing Controller device
- Add to drivers/misc/mei/Makefile
obj-$(CONFIG_INTEL_MEI_VSC) += mei-vsc.o
mei-vsc-objs := spi-vsc.o
mei-vsc-objs += hw-vsc.o
- Add to drivers/misc/Kconfig
source "drivers/misc/ivsc/Kconfig"
- Add to drivers/misc/Makefile
obj-$(CONFIG_INTEL_VSC) += ivsc/
- Enable the following settings in .config
CONFIG_MFD_LJCA=m
CONFIG_I2C_LJCA=m
CONFIG_SPI_LJCA=m
CONFIG_GPIO_LJCA=m
CONFIG_INTEL_MEI_VSC=m
CONFIG_INTEL_VSC=m
CONFIG_INTEL_VSC_CSI=m
CONFIG_INTEL_VSC_ACE=m
CONFIG_INTEL_VSC_PSE=m
CONFIG_INTEL_VSC_ACE_DEBUG=m
-
Requires 5.13 or later kernel header installed on compiling machine
-
To compile:
$cd ivsc-driver
$make -j`nproc`
- To install and use modules
$sudo make modules_install
$sudo depmod -a
a dkms.conf file is also provided as an example for building with dkms which can be
used by dkms
add
, build
and install
.
ivsc firmware bins should be copied to /lib/firmware/vsc.
And on debugging platform the binaries(e.g. ov01a10 sensor) will be put as below:
/lib/firmware/vsc/soc_a1/ivsc_fw_a1.bin
/lib/firmware/vsc/soc_a1/ivsc_pkg_ovti01a0_0_a1.bin
/lib/firmware/vsc/soc_a1/ivsc_skucfg_ovti01a0_0_1_a1.bin
And on production platform the binaries(e.g. ov01a10 sensor) will be put as below:
/lib/firmware/vsc/soc_a1_prod/ivsc_fw_a1_prod.bin
/lib/firmware/vsc/soc_a1_prod/ivsc_pkg_ovti01a0_0_a1_prod.bin
/lib/firmware/vsc/soc_a1_prod/ivsc_skucfg_ovti01a0_0_1_a1_prod.bin