1. 29 7月, 2017 1 次提交
  2. 02 9月, 2016 1 次提交
  3. 06 7月, 2015 1 次提交
  4. 11 3月, 2015 1 次提交
    • G
      ARM: shmobile: R-Car Gen2: Add da9063/da9210 regulator quirk · 663fbb52
      Geert Uytterhoeven 提交于
      The r8a7790/lager and r8a7791/koelsch development boards have da9063 and
      da9210 regulators.  Both regulators have their interrupt request lines
      tied to the same interrupt pin (IRQ2) on the SoC.
      
      After cold boot or da9063-induced restart, both the da9063 and da9210
      seem to assert their interrupt request lines.  Hence as soon as one
      driver requests this irq, it gets stuck in an interrupt storm, as it
      only manages to deassert its own interrupt request line, and the other
      driver hasn't installed an interrupt handler yet.
      
      To handle this, install a quirk that masks the interrupts in both the
      da9063 and da9210.  This quirk has to run after the i2c master driver
      has been initialized, but before the i2c slave drivers are initialized.
      As it depends on i2c, select I2C if one of the affected platforms is
      enabled in the kernel config.
      
      On koelsch, the following happens:
      
        - Cold boot or reboot using the da9063 restart handler:
      
      	IRQ2 is asserted, installing da9063/da9210 regulator quirk
      	...
      	i2c i2c-6: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
      	i2c 6-0058: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
      	i2c 6-0058: Detected da9063
      	i2c 6-0058: Masking da9063 interrupt sources
      	i2c 6-0068: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
      	i2c 6-0068: Detected da9210
      	i2c 6-0068: Masking da9210 interrupt sources
      	i2c 6-0068: IRQ2 is not asserted, removing quirk
      
        - Warm boot (reset button):
      
      	rcar_gen2_regulator_quirk: IRQ2 is not asserted, not installing quirk
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Tested-by: NWolfram Sang <wsa+renesas@sang-engineering.com>
      Reviewed-by: NMark Brown <broonie@kernel.org>
      Signed-off-by: NSimon Horman <horms+renesas@verge.net.au>
      663fbb52