Based on kernel version 6.12.4
. Page generated on 2024-12-12 21:02 EST
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | .. SPDX-License-Identifier: GPL-2.0 ============== ACPI I2C Muxes ============== Describing an I2C device hierarchy that includes I2C muxes requires an ACPI Device () scope per mux channel. Consider this topology:: +------+ +------+ | SMB1 |-->| MUX0 |--CH00--> i2c client A (0x50) | | | 0x70 |--CH01--> i2c client B (0x50) +------+ +------+ which corresponds to the following ASL:: Device (SMB1) { Name (_HID, ...) Device (MUX0) { Name (_HID, ...) Name (_CRS, ResourceTemplate () { I2cSerialBus (0x70, ControllerInitiated, I2C_SPEED, AddressingMode7Bit, "^SMB1", 0x00, ResourceConsumer,,) } Device (CH00) { Name (_ADR, 0) Device (CLIA) { Name (_HID, ...) Name (_CRS, ResourceTemplate () { I2cSerialBus (0x50, ControllerInitiated, I2C_SPEED, AddressingMode7Bit, "^CH00", 0x00, ResourceConsumer,,) } } } Device (CH01) { Name (_ADR, 1) Device (CLIB) { Name (_HID, ...) Name (_CRS, ResourceTemplate () { I2cSerialBus (0x50, ControllerInitiated, I2C_SPEED, AddressingMode7Bit, "^CH01", 0x00, ResourceConsumer,,) } } } } } |