1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Bus Devices 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunmenu "Bus devices" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunconfig ARM_CCI 9*4882a593Smuzhiyun bool 10*4882a593Smuzhiyun 11*4882a593Smuzhiyunconfig ARM_CCI400_COMMON 12*4882a593Smuzhiyun bool 13*4882a593Smuzhiyun select ARM_CCI 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunconfig ARM_CCI400_PORT_CTRL 16*4882a593Smuzhiyun bool 17*4882a593Smuzhiyun depends on ARM && OF && CPU_V7 18*4882a593Smuzhiyun select ARM_CCI400_COMMON 19*4882a593Smuzhiyun help 20*4882a593Smuzhiyun Low level power management driver for CCI400 cache coherent 21*4882a593Smuzhiyun interconnect for ARM platforms. 22*4882a593Smuzhiyun 23*4882a593Smuzhiyunconfig ARM_INTEGRATOR_LM 24*4882a593Smuzhiyun bool "ARM Integrator Logic Module bus" 25*4882a593Smuzhiyun depends on HAS_IOMEM 26*4882a593Smuzhiyun depends on ARCH_INTEGRATOR || COMPILE_TEST 27*4882a593Smuzhiyun default ARCH_INTEGRATOR 28*4882a593Smuzhiyun help 29*4882a593Smuzhiyun Say y here to enable support for the ARM Logic Module bus 30*4882a593Smuzhiyun found on the ARM Integrator AP (Application Platform) 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunconfig BRCMSTB_GISB_ARB 33*4882a593Smuzhiyun bool "Broadcom STB GISB bus arbiter" 34*4882a593Smuzhiyun depends on ARM || ARM64 || MIPS 35*4882a593Smuzhiyun default ARCH_BRCMSTB || BMIPS_GENERIC 36*4882a593Smuzhiyun help 37*4882a593Smuzhiyun Driver for the Broadcom Set Top Box System-on-a-chip internal bus 38*4882a593Smuzhiyun arbiter. This driver provides timeout and target abort error handling 39*4882a593Smuzhiyun and internal bus master decoding. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunconfig BT1_APB 42*4882a593Smuzhiyun bool "Baikal-T1 APB-bus driver" 43*4882a593Smuzhiyun depends on MIPS_BAIKAL_T1 || COMPILE_TEST 44*4882a593Smuzhiyun select REGMAP_MMIO 45*4882a593Smuzhiyun help 46*4882a593Smuzhiyun Baikal-T1 AXI-APB bridge is used to access the SoC subsystem CSRs. 47*4882a593Smuzhiyun IO requests are routed to this bus by means of the DW AMBA 3 AXI 48*4882a593Smuzhiyun Interconnect. In case of any APB protocol collisions, slave device 49*4882a593Smuzhiyun not responding on timeout an IRQ is raised with an erroneous address 50*4882a593Smuzhiyun reported to the APB terminator (APB Errors Handler Block). This 51*4882a593Smuzhiyun driver provides the interrupt handler to detect the erroneous 52*4882a593Smuzhiyun address, prints an error message about the address fault, updates an 53*4882a593Smuzhiyun errors counter. The counter and the APB-bus operations timeout can be 54*4882a593Smuzhiyun accessed via corresponding sysfs nodes. 55*4882a593Smuzhiyun 56*4882a593Smuzhiyunconfig BT1_AXI 57*4882a593Smuzhiyun bool "Baikal-T1 AXI-bus driver" 58*4882a593Smuzhiyun depends on MIPS_BAIKAL_T1 || COMPILE_TEST 59*4882a593Smuzhiyun select MFD_SYSCON 60*4882a593Smuzhiyun help 61*4882a593Smuzhiyun AXI3-bus is the main communication bus connecting all high-speed 62*4882a593Smuzhiyun peripheral IP-cores with RAM controller and with MIPS P5600 cores on 63*4882a593Smuzhiyun Baikal-T1 SoC. Traffic arbitration is done by means of DW AMBA 3 AXI 64*4882a593Smuzhiyun Interconnect (so called AXI Main Interconnect) routing IO requests 65*4882a593Smuzhiyun from one SoC block to another. This driver provides a way to detect 66*4882a593Smuzhiyun any bus protocol errors and device not responding situations by 67*4882a593Smuzhiyun means of an embedded on top of the interconnect errors handler 68*4882a593Smuzhiyun block (EHB). AXI Interconnect QoS arbitration tuning is currently 69*4882a593Smuzhiyun unsupported. 70*4882a593Smuzhiyun 71*4882a593Smuzhiyunconfig MOXTET 72*4882a593Smuzhiyun tristate "CZ.NIC Turris Mox module configuration bus" 73*4882a593Smuzhiyun depends on SPI_MASTER && OF 74*4882a593Smuzhiyun help 75*4882a593Smuzhiyun Say yes here to add support for the module configuration bus found 76*4882a593Smuzhiyun on CZ.NIC's Turris Mox. This is needed for the ability to discover 77*4882a593Smuzhiyun the order in which the modules are connected and to get/set some of 78*4882a593Smuzhiyun their settings. For example the GPIOs on Mox SFP module are 79*4882a593Smuzhiyun configured through this bus. 80*4882a593Smuzhiyun 81*4882a593Smuzhiyunconfig HISILICON_LPC 82*4882a593Smuzhiyun bool "Support for ISA I/O space on HiSilicon Hip06/7" 83*4882a593Smuzhiyun depends on (ARM64 && ARCH_HISI) || (COMPILE_TEST && !ALPHA && !HEXAGON && !PARISC && !C6X) 84*4882a593Smuzhiyun depends on HAS_IOMEM 85*4882a593Smuzhiyun select INDIRECT_PIO if ARM64 86*4882a593Smuzhiyun help 87*4882a593Smuzhiyun Driver to enable I/O access to devices attached to the Low Pin 88*4882a593Smuzhiyun Count bus on the HiSilicon Hip06/7 SoC. 89*4882a593Smuzhiyun 90*4882a593Smuzhiyunconfig IMX_WEIM 91*4882a593Smuzhiyun bool "Freescale EIM DRIVER" 92*4882a593Smuzhiyun depends on ARCH_MXC 93*4882a593Smuzhiyun help 94*4882a593Smuzhiyun Driver for i.MX WEIM controller. 95*4882a593Smuzhiyun The WEIM(Wireless External Interface Module) works like a bus. 96*4882a593Smuzhiyun You can attach many different devices on it, such as NOR, onenand. 97*4882a593Smuzhiyun 98*4882a593Smuzhiyunconfig MIPS_CDMM 99*4882a593Smuzhiyun bool "MIPS Common Device Memory Map (CDMM) Driver" 100*4882a593Smuzhiyun depends on CPU_MIPSR2 || CPU_MIPSR5 101*4882a593Smuzhiyun help 102*4882a593Smuzhiyun Driver needed for the MIPS Common Device Memory Map bus in MIPS 103*4882a593Smuzhiyun cores. This bus is for per-CPU tightly coupled devices such as the 104*4882a593Smuzhiyun Fast Debug Channel (FDC). 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun For this to work, either your bootloader needs to enable the CDMM 107*4882a593Smuzhiyun region at an unused physical address on the boot CPU, or else your 108*4882a593Smuzhiyun platform code needs to implement mips_cdmm_phys_base() (see 109*4882a593Smuzhiyun asm/cdmm.h). 110*4882a593Smuzhiyun 111*4882a593Smuzhiyunconfig MVEBU_MBUS 112*4882a593Smuzhiyun bool 113*4882a593Smuzhiyun depends on PLAT_ORION 114*4882a593Smuzhiyun help 115*4882a593Smuzhiyun Driver needed for the MBus configuration on Marvell EBU SoCs 116*4882a593Smuzhiyun (Kirkwood, Dove, Orion5x, MV78XX0 and Armada 370/XP). 117*4882a593Smuzhiyun 118*4882a593Smuzhiyunconfig OMAP_INTERCONNECT 119*4882a593Smuzhiyun tristate "OMAP INTERCONNECT DRIVER" 120*4882a593Smuzhiyun depends on ARCH_OMAP2PLUS 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun help 123*4882a593Smuzhiyun Driver to enable OMAP interconnect error handling driver. 124*4882a593Smuzhiyun 125*4882a593Smuzhiyunconfig OMAP_OCP2SCP 126*4882a593Smuzhiyun tristate "OMAP OCP2SCP DRIVER" 127*4882a593Smuzhiyun depends on ARCH_OMAP2PLUS 128*4882a593Smuzhiyun help 129*4882a593Smuzhiyun Driver to enable ocp2scp module which transforms ocp interface 130*4882a593Smuzhiyun protocol to scp protocol. In OMAP4, USB PHY is connected via 131*4882a593Smuzhiyun OCP2SCP and in OMAP5, both USB PHY and SATA PHY is connected via 132*4882a593Smuzhiyun OCP2SCP. 133*4882a593Smuzhiyun 134*4882a593Smuzhiyunconfig QCOM_EBI2 135*4882a593Smuzhiyun bool "Qualcomm External Bus Interface 2 (EBI2)" 136*4882a593Smuzhiyun depends on HAS_IOMEM 137*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 138*4882a593Smuzhiyun default ARCH_QCOM 139*4882a593Smuzhiyun help 140*4882a593Smuzhiyun Say y here to enable support for the Qualcomm External Bus 141*4882a593Smuzhiyun Interface 2, which can be used to connect things like NAND Flash, 142*4882a593Smuzhiyun SRAM, ethernet adapters, FPGAs and LCD displays. 143*4882a593Smuzhiyun 144*4882a593Smuzhiyunconfig SIMPLE_PM_BUS 145*4882a593Smuzhiyun tristate "Simple Power-Managed Bus Driver" 146*4882a593Smuzhiyun depends on OF && PM 147*4882a593Smuzhiyun help 148*4882a593Smuzhiyun Driver for transparent busses that don't need a real driver, but 149*4882a593Smuzhiyun where the bus controller is part of a PM domain, or under the control 150*4882a593Smuzhiyun of a functional clock, and thus relies on runtime PM for managing 151*4882a593Smuzhiyun this PM domain and/or clock. 152*4882a593Smuzhiyun An example of such a bus controller is the Renesas Bus State 153*4882a593Smuzhiyun Controller (BSC, sometimes called "LBSC within Bus Bridge", or 154*4882a593Smuzhiyun "External Bus Interface") as found on several Renesas ARM SoCs. 155*4882a593Smuzhiyun 156*4882a593Smuzhiyunconfig SUN50I_DE2_BUS 157*4882a593Smuzhiyun bool "Allwinner A64 DE2 Bus Driver" 158*4882a593Smuzhiyun default ARM64 159*4882a593Smuzhiyun depends on ARCH_SUNXI 160*4882a593Smuzhiyun select SUNXI_SRAM 161*4882a593Smuzhiyun help 162*4882a593Smuzhiyun Say y here to enable support for Allwinner A64 DE2 bus driver. It's 163*4882a593Smuzhiyun mostly transparent, but a SRAM region needs to be claimed in the SRAM 164*4882a593Smuzhiyun controller to make the all blocks in the DE2 part accessible. 165*4882a593Smuzhiyun 166*4882a593Smuzhiyunconfig SUNXI_RSB 167*4882a593Smuzhiyun tristate "Allwinner sunXi Reduced Serial Bus Driver" 168*4882a593Smuzhiyun default MACH_SUN8I || MACH_SUN9I || ARM64 169*4882a593Smuzhiyun depends on ARCH_SUNXI 170*4882a593Smuzhiyun select REGMAP 171*4882a593Smuzhiyun help 172*4882a593Smuzhiyun Say y here to enable support for Allwinner's Reduced Serial Bus 173*4882a593Smuzhiyun (RSB) support. This controller is responsible for communicating 174*4882a593Smuzhiyun with various RSB based devices, such as AXP223, AXP8XX PMICs, 175*4882a593Smuzhiyun and AC100/AC200 ICs. 176*4882a593Smuzhiyun 177*4882a593Smuzhiyunconfig TEGRA_ACONNECT 178*4882a593Smuzhiyun tristate "Tegra ACONNECT Bus Driver" 179*4882a593Smuzhiyun depends on ARCH_TEGRA_210_SOC 180*4882a593Smuzhiyun depends on OF && PM 181*4882a593Smuzhiyun help 182*4882a593Smuzhiyun Driver for the Tegra ACONNECT bus which is used to interface with 183*4882a593Smuzhiyun the devices inside the Audio Processing Engine (APE) for Tegra210. 184*4882a593Smuzhiyun 185*4882a593Smuzhiyunconfig TEGRA_GMI 186*4882a593Smuzhiyun tristate "Tegra Generic Memory Interface bus driver" 187*4882a593Smuzhiyun depends on ARCH_TEGRA 188*4882a593Smuzhiyun help 189*4882a593Smuzhiyun Driver for the Tegra Generic Memory Interface bus which can be used 190*4882a593Smuzhiyun to attach devices such as NOR, UART, FPGA and more. 191*4882a593Smuzhiyun 192*4882a593Smuzhiyunconfig TI_PWMSS 193*4882a593Smuzhiyun bool 194*4882a593Smuzhiyun default y if (ARCH_OMAP2PLUS) && (PWM_TIECAP || PWM_TIEHRPWM || TI_EQEP) 195*4882a593Smuzhiyun help 196*4882a593Smuzhiyun PWM Subsystem driver support for AM33xx SOC. 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun PWM submodules require PWM config space access from submodule 199*4882a593Smuzhiyun drivers and require common parent driver support. 200*4882a593Smuzhiyun 201*4882a593Smuzhiyunconfig TI_SYSC 202*4882a593Smuzhiyun bool "TI sysc interconnect target module driver" 203*4882a593Smuzhiyun depends on ARCH_OMAP2PLUS 204*4882a593Smuzhiyun help 205*4882a593Smuzhiyun Generic driver for Texas Instruments interconnect target module 206*4882a593Smuzhiyun found on many TI SoCs. 207*4882a593Smuzhiyun 208*4882a593Smuzhiyunconfig TS_NBUS 209*4882a593Smuzhiyun tristate "Technologic Systems NBUS Driver" 210*4882a593Smuzhiyun depends on SOC_IMX28 211*4882a593Smuzhiyun depends on OF_GPIO && PWM 212*4882a593Smuzhiyun help 213*4882a593Smuzhiyun Driver for the Technologic Systems NBUS which is used to interface 214*4882a593Smuzhiyun with the peripherals in the FPGA of the TS-4600 SoM. 215*4882a593Smuzhiyun 216*4882a593Smuzhiyunconfig UNIPHIER_SYSTEM_BUS 217*4882a593Smuzhiyun tristate "UniPhier System Bus driver" 218*4882a593Smuzhiyun depends on ARCH_UNIPHIER && OF 219*4882a593Smuzhiyun default y 220*4882a593Smuzhiyun help 221*4882a593Smuzhiyun Support for UniPhier System Bus, a simple external bus. This is 222*4882a593Smuzhiyun needed to use on-board devices connected to UniPhier SoCs. 223*4882a593Smuzhiyun 224*4882a593Smuzhiyunconfig VEXPRESS_CONFIG 225*4882a593Smuzhiyun tristate "Versatile Express configuration bus" 226*4882a593Smuzhiyun default y if ARCH_VEXPRESS 227*4882a593Smuzhiyun depends on ARM || ARM64 228*4882a593Smuzhiyun depends on OF 229*4882a593Smuzhiyun select REGMAP 230*4882a593Smuzhiyun help 231*4882a593Smuzhiyun Platform configuration infrastructure for the ARM Ltd. 232*4882a593Smuzhiyun Versatile Express. 233*4882a593Smuzhiyun 234*4882a593Smuzhiyunconfig DA8XX_MSTPRI 235*4882a593Smuzhiyun bool "TI da8xx master peripheral priority driver" 236*4882a593Smuzhiyun depends on ARCH_DAVINCI_DA8XX 237*4882a593Smuzhiyun help 238*4882a593Smuzhiyun Driver for Texas Instruments da8xx master peripheral priority 239*4882a593Smuzhiyun configuration. Allows to adjust the priorities of all master 240*4882a593Smuzhiyun peripherals. 241*4882a593Smuzhiyun 242*4882a593Smuzhiyunsource "drivers/bus/fsl-mc/Kconfig" 243*4882a593Smuzhiyunsource "drivers/bus/mhi/Kconfig" 244*4882a593Smuzhiyun 245*4882a593Smuzhiyunendmenu 246