162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Bus Devices
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenu "Bus devices"
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciconfig ARM_CCI
962306a36Sopenharmony_ci	bool
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciconfig ARM_CCI400_COMMON
1262306a36Sopenharmony_ci	bool
1362306a36Sopenharmony_ci	select ARM_CCI
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciconfig ARM_CCI400_PORT_CTRL
1662306a36Sopenharmony_ci	bool
1762306a36Sopenharmony_ci	depends on ARM && OF && CPU_V7
1862306a36Sopenharmony_ci	select ARM_CCI400_COMMON
1962306a36Sopenharmony_ci	help
2062306a36Sopenharmony_ci	  Low level power management driver for CCI400 cache coherent
2162306a36Sopenharmony_ci	  interconnect for ARM platforms.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciconfig ARM_INTEGRATOR_LM
2462306a36Sopenharmony_ci	bool "ARM Integrator Logic Module bus"
2562306a36Sopenharmony_ci	depends on HAS_IOMEM
2662306a36Sopenharmony_ci	depends on ARCH_INTEGRATOR || COMPILE_TEST
2762306a36Sopenharmony_ci	default ARCH_INTEGRATOR
2862306a36Sopenharmony_ci	help
2962306a36Sopenharmony_ci	  Say y here to enable support for the ARM Logic Module bus
3062306a36Sopenharmony_ci	  found on the ARM Integrator AP (Application Platform)
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciconfig BRCMSTB_GISB_ARB
3362306a36Sopenharmony_ci	tristate "Broadcom STB GISB bus arbiter"
3462306a36Sopenharmony_ci	depends on ARM || ARM64 || MIPS
3562306a36Sopenharmony_ci	default ARCH_BRCMSTB || BMIPS_GENERIC
3662306a36Sopenharmony_ci	help
3762306a36Sopenharmony_ci	  Driver for the Broadcom Set Top Box System-on-a-chip internal bus
3862306a36Sopenharmony_ci	  arbiter. This driver provides timeout and target abort error handling
3962306a36Sopenharmony_ci	  and internal bus master decoding.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig BT1_APB
4262306a36Sopenharmony_ci	bool "Baikal-T1 APB-bus driver"
4362306a36Sopenharmony_ci	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
4462306a36Sopenharmony_ci	select REGMAP_MMIO
4562306a36Sopenharmony_ci	help
4662306a36Sopenharmony_ci	  Baikal-T1 AXI-APB bridge is used to access the SoC subsystem CSRs.
4762306a36Sopenharmony_ci	  IO requests are routed to this bus by means of the DW AMBA 3 AXI
4862306a36Sopenharmony_ci	  Interconnect. In case of any APB protocol collisions, slave device
4962306a36Sopenharmony_ci	  not responding on timeout an IRQ is raised with an erroneous address
5062306a36Sopenharmony_ci	  reported to the APB terminator (APB Errors Handler Block). This
5162306a36Sopenharmony_ci	  driver provides the interrupt handler to detect the erroneous
5262306a36Sopenharmony_ci	  address, prints an error message about the address fault, updates an
5362306a36Sopenharmony_ci	  errors counter. The counter and the APB-bus operations timeout can be
5462306a36Sopenharmony_ci	  accessed via corresponding sysfs nodes.
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ciconfig BT1_AXI
5762306a36Sopenharmony_ci	bool "Baikal-T1 AXI-bus driver"
5862306a36Sopenharmony_ci	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
5962306a36Sopenharmony_ci	select MFD_SYSCON
6062306a36Sopenharmony_ci	help
6162306a36Sopenharmony_ci	  AXI3-bus is the main communication bus connecting all high-speed
6262306a36Sopenharmony_ci	  peripheral IP-cores with RAM controller and with MIPS P5600 cores on
6362306a36Sopenharmony_ci	  Baikal-T1 SoC. Traffic arbitration is done by means of DW AMBA 3 AXI
6462306a36Sopenharmony_ci	  Interconnect (so called AXI Main Interconnect) routing IO requests
6562306a36Sopenharmony_ci	  from one SoC block to another. This driver provides a way to detect
6662306a36Sopenharmony_ci	  any bus protocol errors and device not responding situations by
6762306a36Sopenharmony_ci	  means of an embedded on top of the interconnect errors handler
6862306a36Sopenharmony_ci	  block (EHB). AXI Interconnect QoS arbitration tuning is currently
6962306a36Sopenharmony_ci	  unsupported.
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciconfig MOXTET
7262306a36Sopenharmony_ci	tristate "CZ.NIC Turris Mox module configuration bus"
7362306a36Sopenharmony_ci	depends on SPI_MASTER && OF
7462306a36Sopenharmony_ci	help
7562306a36Sopenharmony_ci	  Say yes here to add support for the module configuration bus found
7662306a36Sopenharmony_ci	  on CZ.NIC's Turris Mox. This is needed for the ability to discover
7762306a36Sopenharmony_ci	  the order in which the modules are connected and to get/set some of
7862306a36Sopenharmony_ci	  their settings. For example the GPIOs on Mox SFP module are
7962306a36Sopenharmony_ci	  configured through this bus.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciconfig HISILICON_LPC
8262306a36Sopenharmony_ci	bool "Support for ISA I/O space on HiSilicon Hip06/7"
8362306a36Sopenharmony_ci	depends on (ARM64 && ARCH_HISI) || (COMPILE_TEST && !ALPHA && !HEXAGON && !PARISC)
8462306a36Sopenharmony_ci	depends on HAS_IOPORT
8562306a36Sopenharmony_ci	select INDIRECT_PIO if ARM64
8662306a36Sopenharmony_ci	help
8762306a36Sopenharmony_ci	  Driver to enable I/O access to devices attached to the Low Pin
8862306a36Sopenharmony_ci	  Count bus on the HiSilicon Hip06/7 SoC.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciconfig IMX_WEIM
9162306a36Sopenharmony_ci	bool "Freescale EIM DRIVER"
9262306a36Sopenharmony_ci	depends on ARCH_MXC
9362306a36Sopenharmony_ci	help
9462306a36Sopenharmony_ci	  Driver for i.MX WEIM controller.
9562306a36Sopenharmony_ci	  The WEIM(Wireless External Interface Module) works like a bus.
9662306a36Sopenharmony_ci	  You can attach many different devices on it, such as NOR, onenand.
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ciconfig INTEL_IXP4XX_EB
9962306a36Sopenharmony_ci	bool "Intel IXP4xx expansion bus interface driver"
10062306a36Sopenharmony_ci	depends on HAS_IOMEM
10162306a36Sopenharmony_ci	depends on ARCH_IXP4XX || COMPILE_TEST
10262306a36Sopenharmony_ci	default ARCH_IXP4XX
10362306a36Sopenharmony_ci	select MFD_SYSCON
10462306a36Sopenharmony_ci	help
10562306a36Sopenharmony_ci	  Driver for the Intel IXP4xx expansion bus interface. The driver is
10662306a36Sopenharmony_ci	  needed to set up various chip select configuration parameters before
10762306a36Sopenharmony_ci	  devices on the expansion bus can be discovered.
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ciconfig MIPS_CDMM
11062306a36Sopenharmony_ci	bool "MIPS Common Device Memory Map (CDMM) Driver"
11162306a36Sopenharmony_ci	depends on CPU_MIPSR2 || CPU_MIPSR5
11262306a36Sopenharmony_ci	help
11362306a36Sopenharmony_ci	  Driver needed for the MIPS Common Device Memory Map bus in MIPS
11462306a36Sopenharmony_ci	  cores. This bus is for per-CPU tightly coupled devices such as the
11562306a36Sopenharmony_ci	  Fast Debug Channel (FDC).
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci	  For this to work, either your bootloader needs to enable the CDMM
11862306a36Sopenharmony_ci	  region at an unused physical address on the boot CPU, or else your
11962306a36Sopenharmony_ci	  platform code needs to implement mips_cdmm_phys_base() (see
12062306a36Sopenharmony_ci	  asm/cdmm.h).
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciconfig MVEBU_MBUS
12362306a36Sopenharmony_ci	bool
12462306a36Sopenharmony_ci	depends on PLAT_ORION
12562306a36Sopenharmony_ci	help
12662306a36Sopenharmony_ci	  Driver needed for the MBus configuration on Marvell EBU SoCs
12762306a36Sopenharmony_ci	  (Kirkwood, Dove, Orion5x, MV78XX0 and Armada 370/XP).
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ciconfig OMAP_INTERCONNECT
13062306a36Sopenharmony_ci	tristate "OMAP INTERCONNECT DRIVER"
13162306a36Sopenharmony_ci	depends on ARCH_OMAP2PLUS
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci	help
13462306a36Sopenharmony_ci	  Driver to enable OMAP interconnect error handling driver.
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ciconfig OMAP_OCP2SCP
13762306a36Sopenharmony_ci	tristate "OMAP OCP2SCP DRIVER"
13862306a36Sopenharmony_ci	depends on ARCH_OMAP2PLUS
13962306a36Sopenharmony_ci	help
14062306a36Sopenharmony_ci	  Driver to enable ocp2scp module which transforms ocp interface
14162306a36Sopenharmony_ci	  protocol to scp protocol. In OMAP4, USB PHY is connected via
14262306a36Sopenharmony_ci	  OCP2SCP and in OMAP5, both USB PHY and SATA PHY is connected via
14362306a36Sopenharmony_ci	  OCP2SCP.
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ciconfig QCOM_EBI2
14662306a36Sopenharmony_ci	bool "Qualcomm External Bus Interface 2 (EBI2)"
14762306a36Sopenharmony_ci	depends on HAS_IOMEM
14862306a36Sopenharmony_ci	depends on ARCH_QCOM || COMPILE_TEST
14962306a36Sopenharmony_ci	default ARCH_QCOM
15062306a36Sopenharmony_ci	help
15162306a36Sopenharmony_ci	  Say y here to enable support for the Qualcomm External Bus
15262306a36Sopenharmony_ci	  Interface 2, which can be used to connect things like NAND Flash,
15362306a36Sopenharmony_ci	  SRAM, ethernet adapters, FPGAs and LCD displays.
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ciconfig QCOM_SSC_BLOCK_BUS
15662306a36Sopenharmony_ci	bool "Qualcomm SSC Block Bus Init Driver"
15762306a36Sopenharmony_ci	  depends on ARCH_QCOM
15862306a36Sopenharmony_ci	  help
15962306a36Sopenharmony_ci	  Say y here to enable support for initializing the bus that connects
16062306a36Sopenharmony_ci	  the SSC block's internal bus to the cNoC (configurantion NoC) on
16162306a36Sopenharmony_ci	  (some) qcom SoCs.
16262306a36Sopenharmony_ci	  The SSC (Snapdragon Sensor Core) block contains a gpio controller,
16362306a36Sopenharmony_ci	  i2c/spi/uart controllers, a hexagon core, and a clock controller
16462306a36Sopenharmony_ci	  which provides clocks for the above.
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ciconfig SUN50I_DE2_BUS
16762306a36Sopenharmony_ci	bool "Allwinner A64 DE2 Bus Driver"
16862306a36Sopenharmony_ci	  default ARM64
16962306a36Sopenharmony_ci	  depends on ARCH_SUNXI
17062306a36Sopenharmony_ci	  select SUNXI_SRAM
17162306a36Sopenharmony_ci	  help
17262306a36Sopenharmony_ci	  Say y here to enable support for Allwinner A64 DE2 bus driver. It's
17362306a36Sopenharmony_ci	  mostly transparent, but a SRAM region needs to be claimed in the SRAM
17462306a36Sopenharmony_ci	  controller to make the all blocks in the DE2 part accessible.
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ciconfig SUNXI_RSB
17762306a36Sopenharmony_ci	tristate "Allwinner sunXi Reduced Serial Bus Driver"
17862306a36Sopenharmony_ci	  default MACH_SUN8I || MACH_SUN9I || ARM64
17962306a36Sopenharmony_ci	  depends on ARCH_SUNXI
18062306a36Sopenharmony_ci	  select REGMAP
18162306a36Sopenharmony_ci	  help
18262306a36Sopenharmony_ci	  Say y here to enable support for Allwinner's Reduced Serial Bus
18362306a36Sopenharmony_ci	  (RSB) support. This controller is responsible for communicating
18462306a36Sopenharmony_ci	  with various RSB based devices, such as AXP223, AXP8XX PMICs,
18562306a36Sopenharmony_ci	  and AC100/AC200 ICs.
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ciconfig TEGRA_ACONNECT
18862306a36Sopenharmony_ci	tristate "Tegra ACONNECT Bus Driver"
18962306a36Sopenharmony_ci	depends on ARCH_TEGRA
19062306a36Sopenharmony_ci	depends on OF && PM
19162306a36Sopenharmony_ci	help
19262306a36Sopenharmony_ci	  Driver for the Tegra ACONNECT bus which is used to interface with
19362306a36Sopenharmony_ci	  the devices inside the Audio Processing Engine (APE) for
19462306a36Sopenharmony_ci	  Tegra210 and later.
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ciconfig TEGRA_GMI
19762306a36Sopenharmony_ci	tristate "Tegra Generic Memory Interface bus driver"
19862306a36Sopenharmony_ci	depends on ARCH_TEGRA
19962306a36Sopenharmony_ci	help
20062306a36Sopenharmony_ci	  Driver for the Tegra Generic Memory Interface bus which can be used
20162306a36Sopenharmony_ci	  to attach devices such as NOR, UART, FPGA and more.
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ciconfig  TI_PWMSS
20462306a36Sopenharmony_ci	bool
20562306a36Sopenharmony_ci	default y if (ARCH_OMAP2PLUS) && (PWM_TIECAP || PWM_TIEHRPWM || TI_EQEP)
20662306a36Sopenharmony_ci	help
20762306a36Sopenharmony_ci	  PWM Subsystem driver support for AM33xx SOC.
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci	  PWM submodules require PWM config space access from submodule
21062306a36Sopenharmony_ci	  drivers and require common parent driver support.
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ciconfig TI_SYSC
21362306a36Sopenharmony_ci	bool "TI sysc interconnect target module driver"
21462306a36Sopenharmony_ci	depends on ARCH_OMAP2PLUS || ARCH_K3
21562306a36Sopenharmony_ci	default y
21662306a36Sopenharmony_ci	help
21762306a36Sopenharmony_ci	  Generic driver for Texas Instruments interconnect target module
21862306a36Sopenharmony_ci	  found on many TI SoCs.
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ciconfig TS_NBUS
22162306a36Sopenharmony_ci	tristate "Technologic Systems NBUS Driver"
22262306a36Sopenharmony_ci	depends on SOC_IMX28
22362306a36Sopenharmony_ci	depends on OF_GPIO && PWM
22462306a36Sopenharmony_ci	help
22562306a36Sopenharmony_ci	  Driver for the Technologic Systems NBUS which is used to interface
22662306a36Sopenharmony_ci	  with the peripherals in the FPGA of the TS-4600 SoM.
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_ciconfig UNIPHIER_SYSTEM_BUS
22962306a36Sopenharmony_ci	tristate "UniPhier System Bus driver"
23062306a36Sopenharmony_ci	depends on ARCH_UNIPHIER && OF
23162306a36Sopenharmony_ci	default y
23262306a36Sopenharmony_ci	help
23362306a36Sopenharmony_ci	  Support for UniPhier System Bus, a simple external bus.  This is
23462306a36Sopenharmony_ci	  needed to use on-board devices connected to UniPhier SoCs.
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ciconfig VEXPRESS_CONFIG
23762306a36Sopenharmony_ci	tristate "Versatile Express configuration bus"
23862306a36Sopenharmony_ci	default y if ARCH_VEXPRESS
23962306a36Sopenharmony_ci	depends on ARM || ARM64
24062306a36Sopenharmony_ci	depends on OF
24162306a36Sopenharmony_ci	select REGMAP
24262306a36Sopenharmony_ci	help
24362306a36Sopenharmony_ci	  Platform configuration infrastructure for the ARM Ltd.
24462306a36Sopenharmony_ci	  Versatile Express.
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ciconfig DA8XX_MSTPRI
24762306a36Sopenharmony_ci	bool "TI da8xx master peripheral priority driver"
24862306a36Sopenharmony_ci	depends on ARCH_DAVINCI_DA8XX
24962306a36Sopenharmony_ci	help
25062306a36Sopenharmony_ci	  Driver for Texas Instruments da8xx master peripheral priority
25162306a36Sopenharmony_ci	  configuration. Allows to adjust the priorities of all master
25262306a36Sopenharmony_ci	  peripherals.
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_cisource "drivers/bus/fsl-mc/Kconfig"
25562306a36Sopenharmony_cisource "drivers/bus/mhi/Kconfig"
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_ciendmenu
258