zephyr/drivers/i2c
Mulin Chao f3ea7f5819 driver: i2c: add i2c support in npcx series.
The NPCX SMB modules provides full support for a two-wire SMBus/I2C
synchronous serial interface. Each SMBus/I2C interface is a two-wire
serial interface that is compatible with both Intel SMBus and Philips
I2C physical layer. There are 8 SMBus modules and 10 buses in NPCX7
series.

In NPCX7 series, the SMB5 and SMB6 modules contain a two-way switch to
support two separate SMBus/I2C buses (ports) with one SMB module
(controller) Please refer Section 4.7.2 in the datasheet. In order to
support it, this CL seperates the i2c driver into port and controller
drivers. The controller driver is in charge of i2c module operations
and internal state machine. The port driver is in charge of pin-mux
and connection between Zehpyr i2c api interface and controller driver.

All of modules have separate 32-byte transmit FIFO and 32-byte receive
FIFO buffers. These FIFO buffers reduce firmware overhead during long
SMBus transactions by allowing the Core to write or read more than one
data byte at a time to/from the SMB module.

The CL also includes:
— Add npcx i2c port/controller device tree declarations.
— Zephyr i2c api implementation.
— Add "i2c-0" aliases in npcx7m6fb.dts for i2c test suites.

Signed-off-by: Mulin Chao <MLChao@nuvoton.com>
2020-12-27 18:15:14 +01:00
..
slave drivers: i2c: eeprom: Convert drivers to new DT device macros 2020-12-18 08:01:59 -06:00
CMakeLists.txt driver: i2c: add i2c support in npcx series. 2020-12-27 18:15:14 +01:00
i2c_bitbang.c
i2c_bitbang.h
i2c_cc13xx_cc26xx.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_cc32xx.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_common.c drivers: i2c: Add a dump routine 2020-08-04 17:50:39 +02:00
i2c_dw_port_x.h drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_dw_registers.h
i2c_dw.c drivers: i2c_dw: add 4 additional ports 2020-12-17 21:52:41 -06:00
i2c_dw.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
i2c_emul.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_esp32.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_gecko.c drivers: i2c_gecko: refactor to unify device definition 2020-12-15 11:19:26 +01:00
i2c_gpio.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_handlers.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
i2c_imx.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_litex.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_ll_stm32_v1.c drivers: i2c: stm32: use generic LL headers 2020-11-30 15:50:03 +01:00
i2c_ll_stm32_v2.c drivers: i2c: stm32: use generic LL headers 2020-11-30 15:50:03 +01:00
i2c_ll_stm32.c drivers: i2c: stm32: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_ll_stm32.h drivers/i2c: stm32: Add pinctrl configuration at driver init 2020-10-09 11:52:59 +02:00
i2c_lpc11u6x.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_lpc11u6x.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
i2c_mchp_xec.c drivers: i2c_mchp_xec: fix incorrect timeout value 2020-12-17 08:06:39 -05:00
i2c_mcux_flexcomm.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_mcux_lpi2c.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_mcux.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_nios2.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_npcx_controller.c driver: i2c: add i2c support in npcx series. 2020-12-27 18:15:14 +01:00
i2c_npcx_controller.h driver: i2c: add i2c support in npcx series. 2020-12-27 18:15:14 +01:00
i2c_npcx_port.c driver: i2c: add i2c support in npcx series. 2020-12-27 18:15:14 +01:00
i2c_nrfx_twi.c power: standarize PM Kconfigs and cleanup 2020-12-09 15:18:29 -05:00
i2c_nrfx_twim.c power: standarize PM Kconfigs and cleanup 2020-12-09 15:18:29 -05:00
i2c_rv32m1_lpi2c.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_sam0.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_sam4l_twim.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_sam_twi.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_sam_twihs.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_sbcon.c drivers: i2c: Convert drivers to new DT device macros 2020-12-10 16:40:11 -06:00
i2c_shell.c i2c_shell: restore documentation on scan technique 2020-09-03 08:52:19 -04:00
i2c_sifive.c drivers: i2c: i2c_sifive: Fix build issue 2020-12-11 09:13:02 -06:00
i2c-priv.h
Kconfig driver: i2c: add i2c support in npcx series. 2020-12-27 18:15:14 +01:00
Kconfig.cc13xx_cc26xx
Kconfig.dw
Kconfig.esp32 drivers: i2c: Move Kconfig I2C instances to esp32 2020-10-16 06:36:18 -04:00
Kconfig.gpio
Kconfig.i2c_emul emul: i2c: Add support for I2C emulators 2020-09-01 14:30:46 -04:00
Kconfig.litex
Kconfig.lpc11u6x drivers: i2c: Add support for LPC11U6X I2C controllers 2020-07-29 20:12:24 +02:00
Kconfig.npcx driver: i2c: add i2c support in npcx series. 2020-12-27 18:15:14 +01:00
Kconfig.nrfx
Kconfig.sam0
Kconfig.sbcon
Kconfig.sifive
Kconfig.stm32
Kconfig.xec