linux-stable/include/dt-bindings
Marek Behún 5bc7f990cd 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
it finds via SPI, it creates a new device on the moxtet bus so that
drivers can be written for them.

It also implements a virtual interrupt controller for the modules which
send their interrupt status over the SPI shift register. These modules
do this in addition to sending their interrupt status via the shared
interrupt line. When the shared interrupt is triggered, we read from the
shift register and handle IRQs for all devices which are in interrupt.

The topology of how Mox modules are connected can then be read by
listing /sys/bus/moxtet/devices.

Link: https://lore.kernel.org/r/20190812161118.21476-2-marek.behun@nic.cz
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-08-14 15:30:35 +02:00
..
arm treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
bus bus: Add support for Moxtet bus 2019-08-14 15:30:35 +02:00
clk mfd: lochnagar: Add initial binding documentation 2019-02-07 10:43:55 +00:00
clock This round of clk driver and framework updates is heavy on the driver update 2019-07-17 10:07:48 -07:00
display
dma treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 498 2019-06-19 17:09:53 +02:00
firmware/imx dt-bindings: firmware: imx-scu: add new resources to scu resource table 2019-03-19 16:46:37 +08:00
gce
gpio arm64: tegra: Device tree changes for v5.3-rc1 2019-06-25 04:48:32 -07:00
i2c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 498 2019-06-19 17:09:53 +02:00
iio dt-bindings: iio/temperature: Add thermocouple types (and doc) 2019-04-04 20:21:01 +01:00
input treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
interconnect interconnect: qcom: Add sdm845 interconnect provider driver 2019-01-22 13:37:25 +01:00
interrupt-controller treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
leds
mailbox
media treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
memory treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
mfd treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mips treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mux
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-06-07 11:00:14 -07:00
phy treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
pinctrl treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
power ARM: SoC-related driver updates 2019-07-19 17:13:56 -07:00
pwm
regulator
reset dt-bindings: reset: amlogic,meson8b-reset: update with SPDX Licence identifier 2019-08-01 11:01:58 +02:00
soc treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
sound Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
spmi treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
thermal treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 498 2019-06-19 17:09:53 +02:00
usb