0001 # SPDX-License-Identifier: GPL-2.0
0002 #
0003 # Bus Devices
0004 #
0005
0006 menu "Bus devices"
0007
0008 config ARM_CCI
0009 bool
0010
0011 config ARM_CCI400_COMMON
0012 bool
0013 select ARM_CCI
0014
0015 config ARM_CCI400_PORT_CTRL
0016 bool
0017 depends on ARM && OF && CPU_V7
0018 select ARM_CCI400_COMMON
0019 help
0020 Low level power management driver for CCI400 cache coherent
0021 interconnect for ARM platforms.
0022
0023 config ARM_INTEGRATOR_LM
0024 bool "ARM Integrator Logic Module bus"
0025 depends on HAS_IOMEM
0026 depends on ARCH_INTEGRATOR || COMPILE_TEST
0027 default ARCH_INTEGRATOR
0028 help
0029 Say y here to enable support for the ARM Logic Module bus
0030 found on the ARM Integrator AP (Application Platform)
0031
0032 config BRCMSTB_GISB_ARB
0033 tristate "Broadcom STB GISB bus arbiter"
0034 depends on ARM || ARM64 || MIPS
0035 default ARCH_BRCMSTB || BMIPS_GENERIC
0036 help
0037 Driver for the Broadcom Set Top Box System-on-a-chip internal bus
0038 arbiter. This driver provides timeout and target abort error handling
0039 and internal bus master decoding.
0040
0041 config BT1_APB
0042 bool "Baikal-T1 APB-bus driver"
0043 depends on MIPS_BAIKAL_T1 || COMPILE_TEST
0044 select REGMAP_MMIO
0045 help
0046 Baikal-T1 AXI-APB bridge is used to access the SoC subsystem CSRs.
0047 IO requests are routed to this bus by means of the DW AMBA 3 AXI
0048 Interconnect. In case of any APB protocol collisions, slave device
0049 not responding on timeout an IRQ is raised with an erroneous address
0050 reported to the APB terminator (APB Errors Handler Block). This
0051 driver provides the interrupt handler to detect the erroneous
0052 address, prints an error message about the address fault, updates an
0053 errors counter. The counter and the APB-bus operations timeout can be
0054 accessed via corresponding sysfs nodes.
0055
0056 config BT1_AXI
0057 bool "Baikal-T1 AXI-bus driver"
0058 depends on MIPS_BAIKAL_T1 || COMPILE_TEST
0059 select MFD_SYSCON
0060 help
0061 AXI3-bus is the main communication bus connecting all high-speed
0062 peripheral IP-cores with RAM controller and with MIPS P5600 cores on
0063 Baikal-T1 SoC. Traffic arbitration is done by means of DW AMBA 3 AXI
0064 Interconnect (so called AXI Main Interconnect) routing IO requests
0065 from one SoC block to another. This driver provides a way to detect
0066 any bus protocol errors and device not responding situations by
0067 means of an embedded on top of the interconnect errors handler
0068 block (EHB). AXI Interconnect QoS arbitration tuning is currently
0069 unsupported.
0070
0071 config MOXTET
0072 tristate "CZ.NIC Turris Mox module configuration bus"
0073 depends on SPI_MASTER && OF
0074 help
0075 Say yes here to add support for the module configuration bus found
0076 on CZ.NIC's Turris Mox. This is needed for the ability to discover
0077 the order in which the modules are connected and to get/set some of
0078 their settings. For example the GPIOs on Mox SFP module are
0079 configured through this bus.
0080
0081 config HISILICON_LPC
0082 bool "Support for ISA I/O space on HiSilicon Hip06/7"
0083 depends on (ARM64 && ARCH_HISI) || (COMPILE_TEST && !ALPHA && !HEXAGON && !PARISC)
0084 depends on HAS_IOMEM
0085 select INDIRECT_PIO if ARM64
0086 help
0087 Driver to enable I/O access to devices attached to the Low Pin
0088 Count bus on the HiSilicon Hip06/7 SoC.
0089
0090 config IMX_WEIM
0091 bool "Freescale EIM DRIVER"
0092 depends on ARCH_MXC
0093 help
0094 Driver for i.MX WEIM controller.
0095 The WEIM(Wireless External Interface Module) works like a bus.
0096 You can attach many different devices on it, such as NOR, onenand.
0097
0098 config INTEL_IXP4XX_EB
0099 bool "Intel IXP4xx expansion bus interface driver"
0100 depends on HAS_IOMEM
0101 depends on ARCH_IXP4XX || COMPILE_TEST
0102 default ARCH_IXP4XX
0103 select MFD_SYSCON
0104 help
0105 Driver for the Intel IXP4xx expansion bus interface. The driver is
0106 needed to set up various chip select configuration parameters before
0107 devices on the expansion bus can be discovered.
0108
0109 config MIPS_CDMM
0110 bool "MIPS Common Device Memory Map (CDMM) Driver"
0111 depends on CPU_MIPSR2 || CPU_MIPSR5
0112 help
0113 Driver needed for the MIPS Common Device Memory Map bus in MIPS
0114 cores. This bus is for per-CPU tightly coupled devices such as the
0115 Fast Debug Channel (FDC).
0116
0117 For this to work, either your bootloader needs to enable the CDMM
0118 region at an unused physical address on the boot CPU, or else your
0119 platform code needs to implement mips_cdmm_phys_base() (see
0120 asm/cdmm.h).
0121
0122 config MVEBU_MBUS
0123 bool
0124 depends on PLAT_ORION
0125 help
0126 Driver needed for the MBus configuration on Marvell EBU SoCs
0127 (Kirkwood, Dove, Orion5x, MV78XX0 and Armada 370/XP).
0128
0129 config OMAP_INTERCONNECT
0130 tristate "OMAP INTERCONNECT DRIVER"
0131 depends on ARCH_OMAP2PLUS
0132
0133 help
0134 Driver to enable OMAP interconnect error handling driver.
0135
0136 config OMAP_OCP2SCP
0137 tristate "OMAP OCP2SCP DRIVER"
0138 depends on ARCH_OMAP2PLUS
0139 help
0140 Driver to enable ocp2scp module which transforms ocp interface
0141 protocol to scp protocol. In OMAP4, USB PHY is connected via
0142 OCP2SCP and in OMAP5, both USB PHY and SATA PHY is connected via
0143 OCP2SCP.
0144
0145 config QCOM_EBI2
0146 bool "Qualcomm External Bus Interface 2 (EBI2)"
0147 depends on HAS_IOMEM
0148 depends on ARCH_QCOM || COMPILE_TEST
0149 default ARCH_QCOM
0150 help
0151 Say y here to enable support for the Qualcomm External Bus
0152 Interface 2, which can be used to connect things like NAND Flash,
0153 SRAM, ethernet adapters, FPGAs and LCD displays.
0154
0155 config QCOM_SSC_BLOCK_BUS
0156 bool "Qualcomm SSC Block Bus Init Driver"
0157 depends on ARCH_QCOM
0158 help
0159 Say y here to enable support for initializing the bus that connects
0160 the SSC block's internal bus to the cNoC (configurantion NoC) on
0161 (some) qcom SoCs.
0162 The SSC (Snapdragon Sensor Core) block contains a gpio controller,
0163 i2c/spi/uart controllers, a hexagon core, and a clock controller
0164 which provides clocks for the above.
0165
0166 config SUN50I_DE2_BUS
0167 bool "Allwinner A64 DE2 Bus Driver"
0168 default ARM64
0169 depends on ARCH_SUNXI
0170 select SUNXI_SRAM
0171 help
0172 Say y here to enable support for Allwinner A64 DE2 bus driver. It's
0173 mostly transparent, but a SRAM region needs to be claimed in the SRAM
0174 controller to make the all blocks in the DE2 part accessible.
0175
0176 config SUNXI_RSB
0177 tristate "Allwinner sunXi Reduced Serial Bus Driver"
0178 default MACH_SUN8I || MACH_SUN9I || ARM64
0179 depends on ARCH_SUNXI
0180 select REGMAP
0181 help
0182 Say y here to enable support for Allwinner's Reduced Serial Bus
0183 (RSB) support. This controller is responsible for communicating
0184 with various RSB based devices, such as AXP223, AXP8XX PMICs,
0185 and AC100/AC200 ICs.
0186
0187 config TEGRA_ACONNECT
0188 tristate "Tegra ACONNECT Bus Driver"
0189 depends on ARCH_TEGRA_210_SOC
0190 depends on OF && PM
0191 help
0192 Driver for the Tegra ACONNECT bus which is used to interface with
0193 the devices inside the Audio Processing Engine (APE) for Tegra210.
0194
0195 config TEGRA_GMI
0196 tristate "Tegra Generic Memory Interface bus driver"
0197 depends on ARCH_TEGRA
0198 help
0199 Driver for the Tegra Generic Memory Interface bus which can be used
0200 to attach devices such as NOR, UART, FPGA and more.
0201
0202 config TI_PWMSS
0203 bool
0204 default y if (ARCH_OMAP2PLUS) && (PWM_TIECAP || PWM_TIEHRPWM || TI_EQEP)
0205 help
0206 PWM Subsystem driver support for AM33xx SOC.
0207
0208 PWM submodules require PWM config space access from submodule
0209 drivers and require common parent driver support.
0210
0211 config TI_SYSC
0212 bool "TI sysc interconnect target module driver"
0213 depends on ARCH_OMAP2PLUS
0214 help
0215 Generic driver for Texas Instruments interconnect target module
0216 found on many TI SoCs.
0217
0218 config TS_NBUS
0219 tristate "Technologic Systems NBUS Driver"
0220 depends on SOC_IMX28
0221 depends on OF_GPIO && PWM
0222 help
0223 Driver for the Technologic Systems NBUS which is used to interface
0224 with the peripherals in the FPGA of the TS-4600 SoM.
0225
0226 config UNIPHIER_SYSTEM_BUS
0227 tristate "UniPhier System Bus driver"
0228 depends on ARCH_UNIPHIER && OF
0229 default y
0230 help
0231 Support for UniPhier System Bus, a simple external bus. This is
0232 needed to use on-board devices connected to UniPhier SoCs.
0233
0234 config VEXPRESS_CONFIG
0235 tristate "Versatile Express configuration bus"
0236 default y if ARCH_VEXPRESS
0237 depends on ARM || ARM64
0238 depends on OF
0239 select REGMAP
0240 help
0241 Platform configuration infrastructure for the ARM Ltd.
0242 Versatile Express.
0243
0244 config DA8XX_MSTPRI
0245 bool "TI da8xx master peripheral priority driver"
0246 depends on ARCH_DAVINCI_DA8XX
0247 help
0248 Driver for Texas Instruments da8xx master peripheral priority
0249 configuration. Allows to adjust the priorities of all master
0250 peripherals.
0251
0252 source "drivers/bus/fsl-mc/Kconfig"
0253 source "drivers/bus/mhi/Kconfig"
0254
0255 endmenu