|
@@ -0,0 +1,58 @@
|
|
|
+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,,)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|