bus: Add support for Moxtet bus
On the Turris Mox router different modules can be connected to the main CPU board: currently a module with a SFP cage, a module with MiniPCIe connector, a PCIe pass-through MiniPCIe connector module, a 4-port switch module, an 8-port switch module, and a 4-port USB3 module. For example: [CPU]-[PCIe-pass-through]-[PCIe]-[8-port switch]-[8-port switch]-[SFP] Each of this modules has an input and output shift register, and these are connected via SPI to the CPU board. Via SPI we are able to discover which modules are connected, in which order, and we can also read some information about the modules (eg. their interrupt status), and configure them. From each module 8 bits can be read (of which low 4 bits identify the module) and 8 bits can be written. For example from the module with a SFP cage we can read the LOS, TX-FAULT and MOD-DEF0 signals, while we can write TX-DISABLE and RATE-SELECT signals. This driver creates a new bus type, called "moxtet". For each Mox module...
Showing
- MAINTAINERS 7 additions, 0 deletionsMAINTAINERS
- drivers/bus/Kconfig 10 additions, 0 deletionsdrivers/bus/Kconfig
- drivers/bus/Makefile 1 addition, 0 deletionsdrivers/bus/Makefile
- drivers/bus/moxtet.c 886 additions, 0 deletionsdrivers/bus/moxtet.c
- include/dt-bindings/bus/moxtet.h 16 additions, 0 deletionsinclude/dt-bindings/bus/moxtet.h
- include/linux/moxtet.h 109 additions, 0 deletionsinclude/linux/moxtet.h
Please register or sign in to comment