platform/chrome: Updates for v4.1

Here's a set of updates to the Chrome OS platform drivers for this merge window.

Main new things this cycle is:

- Driver changes to expose the lightbar to users. With this, you can make your
  own blinkenlights on Chromebook Pixels.
- Changes in the way that the atmel_mxt trackpads are probed. The laptop driver
  is trying to be smart and not instantiate the devices that don't answer to
  probe. For the trackpad that can come up in two modes (bootloader or regular),
  this gets complicated since the driver already knows how to handle the two
  modes including the actual addresses used. So now the laptop driver needs to
  know more too, instantiating the regular address even if the bootloader one
  is the probe that passed.
- mfd driver improvements by Javier Martines Canillas, and a few bugfixes
  from him, kbuild and myself.
platform/chrome: chromeos_laptop - instantiate Atmel at primary address

The new Atmel MXT driver expects i2c client's address contain the
primary (main address) of the chip, and calculates the expected
bootloader address form the primary address. Unfortunately chrome_laptop
does probe the devices and if touchpad (or touchscreen, or both) comes
up in bootloader mode the i2c device gets instantiated with the
bootloader address which confuses the driver.

To work around this issue let's probe the primary address first. If the
device is not detected at the primary address we'll probe alternative
addresses as "dummy" devices. If any of them are found, destroy the
dummy client and instantiate client with proper name at primary address
still.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
1 file changed