This is a fork of the Xilinx i2c-xiic
driver with added support for the master_xfer_atomic
method.
master_xfer_atomic
is needed very late before reset/shutdown, in case the system needs to access a PMIC or other I2C peripheral to conduct the actual shutdown operation, at a stage when interrupts are already disabled (and the regular master_xfer
method would not work due to its usage of interrupts or scheduling).
This driver allows to use the Xilinx AXI IIC Bus Interface on FPGA/SoC systems (like Zynq UltraScale+ MPSoC) to trigger power management actions, such as shutdown or reset, at a very late system stage.
Disable the in-kernel version of i2c-xiic
(CONFIG_I2C_XILINX=n
) and build/install this driver like a regular kernel module.
This driver was forked from the xilinx-v2022.1
release of linux-xlnx, corresponding to a 5.15.0 kernel version. There are some version checks in place for better backward compatibility. It was tested on a xilinx-v2020.2
based system running a 5.4.0 kernel.