From mboxrd@z Thu Jan 1 00:00:00 1970 From: grant.likely@secretlab.ca (Grant Likely) Date: Tue, 26 Nov 2013 12:55:10 +0000 Subject: ACPI In-Reply-To: References: <20131125154110.GB3243@srcf.ucam.org> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, Nov 26, 2013 at 12:43 PM, Linus Walleij wrote: > On Mon, Nov 25, 2013 at 4:41 PM, Matthew Garrett wrote: > >> In the past ACPI implementations handled GPIO by providing >> methods that accessed hardware registers directly. I've seen DSDTs that >> implement i2c entirely in ASL. > > Is that common? > > Since i2c is a slow bus, can be 100kHz or so, how does that > avoid locking the entire CPU while e.g. waiting for transactions on > the external bus to complete? > > In I2C drivers we typically use completion IRQs so that we can > do other stuff when the I2C traffic is busy ... > > I have a feeling we should not recommend ARM implementers > to go and do things like this. ACPI5 defines a binding for serial busses (i2c & spi) which allows real device drivers to drive the bus and allows ACPI and the kernel to share the bus safely. Using that binding means some i2c devices can be 'owned' by ACPI and others owned by the kernel. g.