• Home
  • Raw
  • Download

Lines Matching +full:spi +full:- +full:rx +full:- +full:bus +full:- +full:width

1 .. SPDX-License-Identifier: GPL-2.0
9 devices behind serial bus controllers.
13 that are accessed through memory-mapped registers.
15 In order to support this and re-use the existing drivers as much as
18 - Devices that have no bus connector resource are represented as
21 - Devices behind real busses where there is a connector resource
30 The ACPI implementation enumerates devices behind busses (platform, SPI,
34 This means that when ACPI_HANDLE(dev) returns non-NULL the device was
36 device-specific configuration. There is an example of this below.
38 Platform bus support
42 connected to any physical bus we only need to implement a platform driver
43 for the device and add supported ACPI IDs. If this same IP-block is used on
44 some other non-ACPI platform, the driver might work out of the box or needs
73 the specific bus that they are on (for example, configuration space in PCI),
164 FixedDMA resource array, "rx" means the second entry. The table below shows a
181 So, the FixedDMA with request line 0x0018 is "tx" and next one is "rx" in
194 The interrupt name can be listed in _DSD as 'interrupt-names'. The names
211 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
213 Package () { "interrupt-names", Package () { "default", "alert" } },
223 The driver can call the function - fwnode_irq_get_byname() with the fwnode
226 SPI serial bus support
229 Slave devices behind SPI bus have SpiSerialBus resource attached to them.
230 This is extracted automatically by the SPI core and the slave devices are
231 enumerated once spi_register_master() is called by the bus driver.
233 Here is what the ACPI namespace for a SPI slave might look like::
251 The SPI device drivers only need to add ACPI IDs in a similar way to
253 to at25 SPI eeprom driver (this is meant for the above ACPI snippet)::
276 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
281 Package () { "address-width", 16 },
286 Then the at25 SPI driver can get this configuration by calling device property
287 APIs during ->probe() phase like::
297 err = device_property_read_u32(dev, "address-width", &addr_width);
301 I2C serial bus support
304 The slaves behind I2C bus controller only need to add the ACPI IDs like
305 with the platform and SPI drivers. The I2C core automatically enumerates
342 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
344 Package () { "compatible", Package () { "pwm-leds" } },
345 Package () { "label", "alarm-led" },
359 In the above example the PWM-based LED driver references to the PWM channel 0
394 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
397 Package () { "power-gpios", Package () { ^DEV, 0, 0, 0 } },
398 Package () { "irq-gpios", Package () { ^DEV, 1, 0, 0 } },
409 Documentation/admin-guide/gpio/.
432 See Documentation/firmware-guide/acpi/gpio-properties.rst for more information
435 RS-485 support
438 ACPI _DSD (Device Specific Data) can be used to describe RS-485 capability
447 // ACPI 5.1 _DSD used for RS-485 capabilities
450 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
453 Package () {"rs485-rts-active-low", Zero},
454 Package () {"rs485-rx-active-high", Zero},
455 Package () {"rs485-rx-during-tx", Zero},
468 - The children share the parent ACPI handle.
469 - The MFD cell can specify the ACPI id of the device.
512 6.0). For non-enumerable bus types that object must be _HID and its value must
516 existing DT-compatible device identification in ACPI and to satisfy the above
524 (except when an I2C or SPI link from the device to its parent is present, in
536 return package will be checked first. Also in that case the bus type the device
539 For example, the following ACPI sample might be used to enumerate an lm75-type
547 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
578 Refer to Documentation/firmware-guide/acpi/DSD-properties-rules.rst for more
585 the PCI bus.
588 in a fixed position (ethernet, Wi-Fi, serial ports, etc.). In this conditions it
589 is possible to refer to these PCI devices knowing their position on the PCI bus
598 16 GPIOs and we want to add the property ``gpio-line-names`` [1]_ to these pins.
617 07:00.0 Serial controller: Exar Corp. XR17V3521 Dual PCIe UART (rev 03) <-- Exar
620 The bus topology is::
622 -[0000:00]-+-00.0
624 +-13.0-[01]----00.0
625 +-13.1-[02]----00.0
626 +-13.2-[03]--
627 +-14.0-[04]----00.0
628 +-14.1-[05-09]----00.0-[06-09]--+-01.0-[07]----00.0 <-- Exar
629 | +-02.0-[08]----00.0
630 | \-03.0-[09]--
632 \-1f.1
634 To describe this Exar device on the PCI bus, we must start from the ACPI name
637 Bus: 0 - Device: 14 - Function: 1
645 acpixtract -a acpidump
646 iasl -e ssdt?.* -d dsdt.dat
692 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
697 "gpio-line-names",
722 created analyzing the position of the Exar UART in the PCI bus topology.
727 .. [1] Documentation/firmware-guide/acpi/gpio-properties.rst
729 .. [2] Documentation/admin-guide/acpi/initrd_table_override.rst
731 .. [3] ACPI Specifications, Version 6.3 - Paragraph 6.1.1 _ADR Address)
733 referenced 2020-11-18