On Wed, Oct 21, 2015 at 09:19:24PM +0200, Christophe Ricard wrote: > From: Christophe Ricard <christophe.ricard@xxxxxxxxx> > > Hi, > > I am trying to probe slave i2c devices with ACPI running Ubuntu 15.04 and kernel 4.3 > without success so far. > > I've followed guidance here: > http://elinux.org/Minnowboard:MinnowMaxLinuxKernel <http://elinux.org/Minnowboard:MinnowMaxLinuxKernel> > > but i found no i2c device are probed at boot. By probed do you mean that they are not listed under /sys/bus/i2c/devices/ or that a driver is not probed against an existing device? > For example, one default device available in the acpi table is never detected: RTEK node (with ID 10EC5640). If the device _STA() method returns 0 then we do not enumerate it. You can check this by looking for the corresponding ACPI device node. For example I have here I2C connected touch screen: # cat /sys/bus/acpi/devices/NTRG0001\:00/status 15 15 means that it is there (among other things). Also the device is then available as I2C device here: # ls -1 /sys/bus/i2c/devices/ i2c-0 i2c-1 i2c-2 i2c-NTRG0001:00 > When adding my own device to I2C7, my device is never detected as well . > > For example the complete modified I2C7 is at the end of the message. > > I am compiling the kernel with options: > CONFIG_ACPI_CUSTOM_DSDT_FILE="dsdt.hex" > CONFIG_ACPI_CUSTOM_DSDT=y > CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y You don't need the last one. > I am running on Minnowboard firmware 0.83 with default options. > > Best Regards > Christophe > > Device (I2C7) > { > Name (_ADR, Zero) // _ADR: Address > Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _HID: Hardware ID > Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _CID: Compatible ID > Name (_DDN, "Intel(R) I2C Controller #7 - 80860F47") // _DDN: DOS Device Name > Name (_UID, 0x07) // _UID: Unique ID > Name (_DEP, Package (One) // _DEP: Dependencies > { > PEPD > }) > Name (RBUF, ResourceTemplate () > { > Memory32Fixed (ReadWrite, > 0x00000000, // Address Base > 0x00001000, // Address Length > _Y1F) > Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) > { > 0x00000026, > } > FixedDMA (0x001C, 0x0004, Width32bit, ) > FixedDMA (0x001D, 0x0005, Width32bit, ) > }) > Method (SSCN, 0, NotSerialized) > { > Name (PKG, Package (0x03) > { > 0x0200, > 0x0200, > 0x06 > }) > Return (PKG) /* \_SB_.I2C7.SSCN.PKG_ */ > } > > Method (FMCN, 0, NotSerialized) > { > Name (PKG, Package (0x03) > { > 0x55, > 0x99, > 0x06 > }) > Return (PKG) /* \_SB_.I2C7.FMCN.PKG_ */ > } > > Method (FPCN, 0, NotSerialized) > { > Name (PKG, Package (0x03) > { > 0x1B, > 0x3A, > 0x06 > }) > Return (PKG) /* \_SB_.I2C7.FPCN.PKG_ */ > } > > Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision > { > Return (SOCS) /* \SOCS */ > } > > Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings > { > CreateDWordField (RBUF, \_SB.I2C7._Y1F._BAS, B0BA) // _BAS: Base Address > CreateDWordField (RBUF, \_SB.I2C7._Y1F._LEN, B0LN) // _LEN: Length > B0BA = I70A /* \I70A */ > B0LN = I70L /* \I70L */ > Return (RBUF) /* \_SB_.I2C7.RBUF */ > } > > Method (_STA, 0, NotSerialized) // _STA: Status > { > If ((PCIM == One)) > { > Return (Zero) > } > > If (((I70A == Zero) || (L27D == One))) > { > Return (Zero) > } > > Return (0x0F) > } > > Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 > { > PSAT |= 0x03 > PSAT |= Zero > } > > Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 > { > PSAT &= 0xFFFFFFFC > PSAT |= Zero > } > > OperationRegion (KEYS, SystemMemory, I71A, 0x0100) > Field (KEYS, DWordAcc, NoLock, WriteAsZeros) > { > Offset (0x84), > PSAT, 32 > } > > Device (NFC1) > { > Name (_ADR, Zero) // _ADR: Address > Name (_HID, "NXP5441") // _HID: Hardware ID > Name (_CID, "NXP5441") // _CID: Compatible ID > Name (_DDN, "NXP NFC") // _DDN: DOS Device Name > Name (_UID, One) // _UID: Unique ID > Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings > { > Name (SBUF, ResourceTemplate () > { > I2cSerialBus (0x0028, ControllerInitiated, 0x00061A80, > AddressingMode7Bit, "\\_SB.I2C7", > 0x00, ResourceConsumer, , > ) > Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) > { > 0x00000047, > } > GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, > "\\_SB.GPO2", 0x00, ResourceConsumer, , > ) > { // Pin list > 0x0009 > } > GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, > "\\_SB.GPO2", 0x00, ResourceConsumer, , > ) > { // Pin list > 0x0008 > } > }) > Return (SBUF) /* \_SB_.I2C7.NFC1._CRS.SBUF */ > } > > Method (_STA, 0, NotSerialized) // _STA: Status > { > If ((NFCS == One)) > { > Return (0x0F) > } > > Return (Zero) Can you check what following returns? # cat /sys/bus/acpi/devices/NXP5441:00/status > } > } > } > > Scope (I2C7) > { > } > } > > > > -- > 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html