| /linux/Documentation/driver-api/driver-model/ |
| H A D | driver.rst | 18 The driver must initialize at least the name and bus fields. It should 33 .bus = &pci_bus_type, 42 model because the bus they belong to has a bus-specific structure with 43 bus-specific fields that cannot be generalized. 48 completely bus-specific. Defining them as bus-specific entities would 49 sacrifice type-safety, so we keep bus-specific structures around. 51 Bus-specific drivers should include a generic struct device_driver in 52 the definition of the bus-specific driver. Like this:: 59 A definition that included bus-specific fields would look like 66 .bus = &pci_bus_type, [all …]
|
| H A D | porting.rst | 12 Please refer to `Documentation/driver-api/driver-model/*.rst` for definitions of 16 at the bus driver layer. This was intentional, to minimize the 18 of bus drivers. 21 be embedded in larger, bus-specific objects. Fields in these generic 22 objects can replace fields in the bus-specific objects. 28 # mount -t sysfs sysfs /sys 36 Step 1: Registering the bus driver. 39 - Define a struct bus_type for the bus driver:: 46 - Register the bus type. 48 This should be done in the initialization function for the bus type, [all …]
|
| H A D | bus.rst | 2 Bus Types 9 int bus_register(struct bus_type * bus); 15 Each bus type in the kernel (PCI, USB, etc) should declare one static 32 When a bus driver is initialized, it calls bus_register. This 33 initializes the rest of the fields in the bus object and inserts it 34 into a global list of bus types. Once the bus object is registered, 35 the fields in it are usable by the bus driver. 45 them are inherently bus-specific. Drivers typically declare an array 46 of device IDs of devices they support that reside in a bus-specific 49 The purpose of the match callback is to give the bus an opportunity to [all …]
|
| /linux/Documentation/ABI/obsolete/ |
| H A D | sysfs-driver-hid-roccat-isku | 1 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 4 Description: The integer value of this attribute ranges from 0-4. 12 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 20 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 31 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 35 capslock key for a specific profile. Profile number is included 41 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 45 easyzone keys for a specific profile. Profile number is included 51 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 55 function keys for a specific profile. Profile number is included [all …]
|
| H A D | sysfs-driver-hid-roccat-ryos | 1 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 9 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 21 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 25 a specific profile. Profile index is included in written data. 31 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 35 function keys for a specific profile. Profile index is included 41 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 45 keys for a specific profile. Profile index is included in 51 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 55 thumbster keys for a specific profile. Profile index is included [all …]
|
| /linux/drivers/bcma/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 8 tristate "Broadcom specific AMBA" 11 Bus driver for Broadcom specific Advanced Microcontroller Bus 16 # Support for Block-I/O. SELECT this from the driver that needs it. 26 bool "Support for BCMA on PCI-host bus" 35 Host interface for a Broadcom AIX bus directly mapped into 46 BCMA bus may have many versions of PCIe core. This driver 61 PCI core hostmode operation (external PCI bus). 67 Driver for the Broadcom MIPS core attached to Broadcom specific 68 Advanced Microcontroller Bus. [all …]
|
| H A D | host_soc.c | 2 * Broadcom specific AMBA 18 return readb(core->io_addr + offset); in bcma_host_soc_read8() 23 return readw(core->io_addr + offset); in bcma_host_soc_read16() 28 return readl(core->io_addr + offset); in bcma_host_soc_read32() 34 writeb(value, core->io_addr + offset); in bcma_host_soc_write8() 40 writew(value, core->io_addr + offset); in bcma_host_soc_write16() 46 writel(value, core->io_addr + offset); in bcma_host_soc_write32() 53 void __iomem *addr = core->io_addr + offset; in bcma_host_soc_block_read() 62 count--; in bcma_host_soc_block_read() 73 count -= 2; in bcma_host_soc_block_read() [all …]
|
| /linux/Documentation/driver-api/usb/ |
| H A D | typec_bus.rst | 2 API for USB Type-C Alternate Mode drivers 6 ------------ 9 Messages (VDM) as defined in USB Type-C and USB Power Delivery Specifications. 10 The communication is SVID (Standard or Vendor ID) specific, i.e. specific for 13 USB Type-C bus allows binding a driver to the discovered partner alternate 16 :ref:`USB Type-C Connector Class <typec>` provides a device for every alternate 29 specific commands from the alternate mode drivers to the partner, and from the 30 partners to the alternate mode drivers. No direct SVID specific communication is 36 ------ 43 space (See Documentation/ABI/testing/sysfs-class-typec). Port drivers should not [all …]
|
| /linux/Documentation/leds/ |
| H A D | leds-lp55xx.rst | 8 ----------- 14 Device attributes for user-space interface 47 To support device specific configurations, special structure 50 - Maximum number of channels 51 - Reset command, chip enable command 52 - Chip specific initialization 53 - Brightness control register access 54 - Setting LED output current 55 - Program memory address access for running patterns 56 - Additional device specific attributes [all …]
|
| /linux/include/linux/platform_data/ |
| H A D | brcmfmac.h | 27 * Platform specific driver functions and data. Through the platform specific 34 * Note: the brcmfmac can be loaded as module or be statically built-in into 35 * the kernel. If built-in then do note that it uses module_init (and 37 * create a module with the platform specific data for the brcmfmac and have 38 * it built-in to the kernel then use a higher initcall then device_initcall 48 * enum brcmf_bus_type - Bus type identifier. Currently SDIO, USB and PCIE are 59 * struct brcmfmac_sdio_pd - SDIO Device specific platform data. 69 * in-band interrupts are relatively slow and for having 88 * specific and this function should return only after the 104 * struct brcmfmac_pd_cc_entry - Struct for translating user space country code [all …]
|
| /linux/Documentation/ABI/testing/ |
| H A D | sysfs-bus-iio-dac | 1 What: /sys/bus/iio/devices/iio:deviceX/out_currentY_toggle_en 3 Contact: linux-iio@vger.kernel.org 9 - disable toggle operation; 10 - change out_currentY_rawN, where N is the integer value of the symbol; 11 - enable toggle operation. 13 What: /sys/bus/iio/devices/iio:deviceX/out_currentY_rawN 15 Contact: linux-iio@vger.kernel.org 18 specific to toggle enabled channels and refers to the DAC output 22 What: /sys/bus/iio/devices/iio:deviceX/out_currentY_symbol 24 Contact: linux-iio@vger.kernel.org [all …]
|
| H A D | sysfs-bus-cdx | 1 What: /sys/bus/cdx/rescan 5 Writing y/1/on to this file will cause rescan of the bus 6 and devices on the CDX bus. Any new devices are scanned and 12 # echo 1 > /sys/bus/cdx/rescan 14 What: /sys/bus/cdx/devices/.../vendor 19 16 bit identifier which is specific to the device manufacturer. 22 What: /sys/bus/cdx/devices/.../device 31 What: /sys/bus/cdx/devices/.../subsystem_vendor 36 Subsystem Vendor ID is 16 bit identifier specific to the 39 What: /sys/bus/cdx/devices/.../subsystem_device [all …]
|
| H A D | sysfs-bus-rapidio | 1 What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii> 8 nn two-digit hexadecimal ID of RapidIO network where the 10 d device type: 'e' - for endpoint or 's' - for switch 11 iiii four-digit device destID for endpoints, or switchID for 20 /sys/bus/rapidio/devices/00:e:0000 21 /sys/bus/rapidio/devices/00:e:0002 22 /sys/bus/rapidio/devices/00:s:0001 30 ----------------------------------------- 32 What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/did 40 What: /sys/bus/rapidio/devices/<nn>:<d>:<iiii>/vid [all …]
|
| /linux/drivers/interconnect/qcom/ |
| H A D | icc-rpm.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 9 #include <linux/soc/qcom/smd-rpm.h> 11 #include <dt-bindings/interconnect/qcom,rpm-icc.h> 13 #include <linux/interconnect-provider.h> 29 * struct rpm_clk_resource - RPM bus clock resource 31 * @clock_id: index of the clock resource of a specific resource type 41 * struct qcom_icc_provider - Qualcomm specific interconnect provider 47 * @ab_coeff: a percentage-based coefficient for compensating the AB calculations 48 * @ib_coeff: an inverse-percentage-based coefficient for compensating the IB calculations 49 * @bus_clk_rate: bus clock rate in Hz [all …]
|
| /linux/Documentation/devicetree/bindings/i2c/ |
| H A D | i2c-opal.txt | 1 Device-tree bindings for I2C OPAL driver 2 ---------------------------------------- 4 Most of the device node and properties layout is specific to the firmware and 6 perspective, the properties of use are "ibm,port-name" and "ibm,opal-id". 10 - reg: Port-id within a given master 11 - compatible: must be "ibm,opal-i2c" 12 - ibm,opal-id: Refers to a specific bus and used to identify it when calling 14 - bus-frequency: Operating frequency of the i2c bus (in HZ). Informational for 18 - ibm,port-name: Firmware provides this name that uniquely identifies the i2c 22 and depend on the specific hardware implementation. The example below depicts [all …]
|
| /linux/drivers/ufs/host/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0+ 5 # Copyright (C) 2011-2013 Samsung India Software Operations 12 tristate "PCI bus based UFS Controller support" 31 tristate "Platform bus based UFS Controller support" 35 you have an UFS controller on Platform bus. 45 This selects the Cadence-specific additions to UFSHCD platform driver. 58 tristate "QCOM specific hooks to UFS controller platform driver" 64 This selects the QCOM specific additions to UFSHCD platform driver. 65 UFS host on QCOM needs some vendor specific configuration before 67 specific registers. [all …]
|
| /linux/rust/kernel/ |
| H A D | driver.rs | 1 // SPDX-License-Identifier: GPL-2.0 5 //! This documentation describes how to implement a bus specific driver API and how to align it with 6 //! the design of (bus specific) devices. 13 //! The main driver interface is defined by a bus specific driver trait. For instance: 27 //! fn probe(dev: &Device<device::Core>, id_info: &Self::IdInfo) -> Result<Pin<KBox<Self>>>; 36 //! For specific examples see [`auxiliary::Driver`], [`pci::Driver`] and [`platform::Driver`]. 39 //! data. The bus abstraction should store the pointer in the corresponding bus device. The generic 44 //! is unbound from the device, the bus abstraction should take back the ownership of the driver's 51 //! The adapter implementation of a bus represents the abstraction layer between the C bus 52 //! callbacks and the Rust bus callbacks. It therefore has to be generic over an implementation of [all …]
|
| /linux/drivers/i3c/ |
| H A D | device.c | 1 // SPDX-License-Identifier: GPL-2.0 18 * i3c_device_do_priv_xfers() - do I3C SDR private transfers directed to a 19 * specific device 31 * * -EAGAIN: controller lost address arbitration. Target (IBI, HJ or 32 * controller role request) win the bus. Client driver needs to resend the 33 * 'xfers' some time later. See I3C spec ver 1.1.1 09-Jun-2021. Section: 47 return -EINVAL; in i3c_device_do_priv_xfers() 50 i3c_bus_normaluse_lock(dev->bus); in i3c_device_do_priv_xfers() 51 ret = i3c_dev_do_priv_xfers_locked(dev->desc, xfers, nxfers); in i3c_device_do_priv_xfers() 52 i3c_bus_normaluse_unlock(dev->bus); in i3c_device_do_priv_xfers() [all …]
|
| /linux/Documentation/devicetree/bindings/mmc/ |
| H A D | arm,pl18x.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Linus Walleij <linus.walleij@linaro.org> 11 - Ulf Hansson <ulf.hansson@linaro.org> 20 - $ref: /schemas/arm/primecell.yaml# 21 - $ref: mmc-controller.yaml# 29 - arm,pl180 30 - arm,pl181 31 - arm,pl18x [all …]
|
| /linux/drivers/bus/ |
| H A D | mips_cdmm.c | 2 * Bus driver for MIPS Common Device Memory Map (CDMM). 4 * Copyright (C) 2014-2015 Imagination Technologies Ltd. 45 /* Bus operations */ 53 for (; table->type; ++table) { in mips_cdmm_lookup() 54 ret = (dev->type == table->type); in mips_cdmm_lookup() 67 return mips_cdmm_lookup(cdrv->id_table, cdev) != NULL; in mips_cdmm_match() 75 retval = add_uevent_var(env, "CDMM_CPU=%u", cdev->cpu); in mips_cdmm_uevent() 79 retval = add_uevent_var(env, "CDMM_TYPE=0x%02x", cdev->type); in mips_cdmm_uevent() 83 retval = add_uevent_var(env, "CDMM_REV=%u", cdev->rev); in mips_cdmm_uevent() 87 retval = add_uevent_var(env, "MODALIAS=mipscdmm:t%02X", cdev->type); in mips_cdmm_uevent() [all …]
|
| /linux/arch/mips/include/asm/ |
| H A D | pci.h | 15 * specific PCI code and MIPS common PCI code. Should potentially put 26 * Each PCI channel is a top-level PCI bus seem by CPU. A machine with 32 struct pci_bus *bus; member 49 /* Optional access methods for reading/writing the bus number 65 /* Do platform specific device initialization at pci_enable_device() time */ 89 hose->need_domain_info = need_domain_info; in set_pci_need_domain_info() 96 already-configured bus numbers - to be used for buggy BIOSes 123 static inline int pci_proc_domain(struct pci_bus *bus) in pci_proc_domain() argument 125 return pci_domain_nr(bus); in pci_proc_domain() 128 #define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index argument [all …]
|
| /linux/drivers/mtd/chips/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 13 support any device that is CFI-compliant, you need to enable this 18 tristate "Detect non-CFI AMD/JEDEC-compatible flash chips" 22 This option enables JEDEC-style probing of flash chips which are not 24 CFI-targeted flash drivers for any chips which are identified which 26 covers most AMD/Fujitsu-compatible chips and also non-CFI 36 If you need to specify a specific endianness for access to flash 38 support for only specific arrangements of flash chips, say 'Y'. This 53 are expected to be wired to the CPU in 'host-endian' form. 54 Specific arrangements are possible with the BIG_ENDIAN_BYTE and [all …]
|
| /linux/Documentation/devicetree/bindings/spi/ |
| H A D | spi-peripheral-props.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/spi/spi-peripheral-props.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Peripheral-specific properties for a SPI bus. 11 be common properties like spi-max-frequency, spi-cs-high, etc. or they could 12 be controller specific like delay in clock or data lines, etc. These 14 per-peripheral and there can be multiple peripherals attached to a 15 controller. All those properties are listed here. The controller specific 20 - Mark Brown <broonie@kernel.org> [all …]
|
| /linux/Documentation/driver-api/virtio/ |
| H A D | virtio.rst | 1 .. SPDX-License-Identifier: GPL-2.0 24 Device - Driver communication: virtqueues 29 using a specific transport method -- PCI, MMIO or CCW -- that is 40 .. kernel-doc:: include/uapi/linux/virtio_ring.h 56 .. kernel-doc:: include/linux/virtio.h 63 a virtqueue during the virtqueue setup process (transport-specific). 65 .. kernel-doc:: drivers/virtio/virtio_ring.c 72 In the kernel, the virtio core contains the virtio bus driver and 73 transport-specific drivers like `virtio-pci` and `virtio-mmio`. Then 74 there are individual virtio drivers for specific device types that are [all …]
|
| /linux/include/linux/ |
| H A D | pci_hotplug.h | 1 /* SPDX-License-Identifier: GPL-2.0+ */ 6 * Copyright (C) 2001 Greg Kroah-Hartman (greg@kroah.com) 18 * struct hotplug_slot_ops -the callbacks that the hotplug pci core can use 19 * @enable_slot: Called when the user wants to enable a specific pci slot 20 * @disable_slot: Called when the user wants to disable a specific pci slot 21 * @set_attention_status: Called to set the specific slot's attention LED to 29 * @reset_slot: Optional interface to allow override of a bus reset for the 30 * slot for cases where a secondary bus reset can result in spurious 31 * hotplug events or where a slot can be reset independent of the bus. 35 * the user wants to do something to a specific slot (query it for information, [all …]
|