1. 28 8月, 2014 1 次提交
    • T
      mfd: twl4030-power: Fix PM idle pin configuration to not conflict with regulators · daebabd5
      Tony Lindgren 提交于
      Commit 43fef47f (mfd: twl4030-power: Add a configuration to turn
      off oscillator during off-idle) added support for configuring the PMIC
      to cut off resources during deeper idle states to save power.
      
      This however caused regression for n900 display power that needed the
      PMIC configuration to be disabled with commit d937678a (ARM: dts:
      Revert enabling of twl configuration for n900).
      
      Turns out the root cause of the problem is that we must use
      TWL4030_RESCONFIG_UNDEF instead of DEV_GRP_NULL to avoid disabling
      regulators that may have been enabled before the init function
      for twl4030-power.c runs. With TWL4030_RESCONFIG_UNDEF we let the
      regulator framework control the regulators like it should. Here we
      need to only configure the sys_clken and sys_off_mode triggers for
      the regulators that cannot be done by the regulator framework as
      it's not running at that point.
      
      This allows us to enable the PMIC configuration for n900.
      
      Fixes: 43fef47f (mfd: twl4030-power: Add a configuration to turn off oscillator during off-idle)
      
      Cc: stable@vger.kernel.org # v3.16
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      Tested-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      daebabd5
  2. 29 7月, 2014 1 次提交
    • T
      ARM: dts: Revert enabling of twl configuration for n900 · d937678a
      Tony Lindgren 提交于
      Commit 9188883f (ARM: dts: Enable twl4030 off-idle configuration
      for selected omaps) allowed n900 to cut off core voltages during
      off-idle. This however caused a regression where twl regulator
      vaux1 was not getting enabled for the LCD panel as we are not
      requesting it for the panel.
      
      Turns out quite a few devices on n900 are using vaux1, and we need
      to either stop idling it, or add proper regulator_get calls for all
      users. But until we have a proper solution implemented and tested,
      let's just disable the twl off-idle configuration for now for n900.
      Reported-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Fixes: 9188883f (ARM: dts: Enable twl4030 off-idle configuration for selected omaps)
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      d937678a
  3. 16 6月, 2014 1 次提交
    • T
      ARM: dts: Enable twl4030 off-idle configuration for selected omaps · 9188883f
      Tony Lindgren 提交于
      N900 now seems to shut down the external oscillator when hitting
      off-idle.
      
      And Beagle XM seems to have OSC_EN pin connected to allow shutting
      down the oscillator looking at the schematics. The oscillator
      output is cut off in off-idle and you can monitor it from R56 on
      the bottom side of the board near the power jack. Note that for
      beagle we need to also enable the UART wake-up event, the others
      have that enabled in earlier patches.
      
      OMAP37XX EVM (TMDSEVM3730) does not seem to have twl4030 clken
      pin connected, so there is no point trying to enable shutting
      down of the oscillator on it for the extra latency it adds.
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      9188883f
  4. 29 5月, 2014 1 次提交
  5. 28 5月, 2014 2 次提交
  6. 07 5月, 2014 5 次提交
    • T
      ARM: dts: Enable N900 keyboard sleep leds by default · c1be2032
      Tony Lindgren 提交于
      On N900 there are nice LEDs that show the state of the
      sys_clkreq and sys_off_mode pins.
      
      These LEDs go low when the system enters deeper idle
      states. The left LED shows the state of the sys_clkreq
      pin, and goes off during retention idle. The right LED
      shows the state of sys_off_mode pin and both go off
      during off idle.
      
      As N900 is a battery operated device, these LEDs should
      be off most of the time. So let's enable them by default
      so we can make sure the system is mostly idle.
      
      This allows the maintainers to also immediately test
      patches for PM regressions by looking at the LEDs,
      which certainly makes my life easier.
      
      The LED can naturally be disabled during runtime with:
      
      # echo none > /sys/class/leds/debug::sleep/trigger
      
      Note that we don't currently have support for omap3
      errata 1.158 that remuxes GPIO pins to INPUT_PULLUP |
      MUX_MODE7 for the duration of idle. This means that the
      GPIO pins set high will go down during off idle. In this
      case it does not matter as the sys_off_mode goes down
      too, but there's still a slim chance of false off idle
      LED signals. If in doubt, false LED signals can be
      verified by the sys_off_mode or vdd_core values.
      
      Also note that to allow the UARTs to autoidle, the
      following needs to be run on N900 to enable off idle:
      
      #!/bin/sh
      uarts=$(find /sys/class/tty/ttyO*/device/power/ -type d)
      for uart in $uarts; do
      	echo 3000 > $uart/autosuspend_delay_ms
      done
      
      uarts=$(find /sys/class/tty/ttyO*/power/ -type d)
      for uart in $uarts; do
      	echo enabled > $uart/wakeup
      	echo auto > $uart/control
      done
      
      echo 1 > /sys/kernel/debug/pm_debug/enable_off_mode
      
      For retention idle, change the above to set 0 to
      enable_off_mode.
      
      Also note that without the twl4030 PM scripts the actual
      voltage scaling won't happen for off idle so we only get
      voltage scaling over I2C4 for retention idle. I'll do
      some device tree patches for those also a bit later on.
      
      Cc: Kevin Hilman <khilman@linaro.org>
      Cc: Nishanth Menon <nm@ti.com>
      Cc: Pali Rohár <pali.rohar@gmail.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Sebastian Reichel <sre@kernel.org>
      Cc: Tero Kristo <t-kristo@ti.com>
      Acked-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      [tony@atomide.com: also make sure the LEDs get built to see PM regressions]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      c1be2032
    • T
      ARM: dts: Fix omap serial wake-up when booted with device tree · 31f0820a
      Tony Lindgren 提交于
      We've had deeper idle states working on omaps for few years now,
      but only in the legacy mode. When booted with device tree, the
      wake-up events did not have a chance to work until commit
      3e6cee17 (pinctrl: single: Add support for wake-up interrupts)
      that recently got merged. In addition to that we also needed commit
      79d97015 (of/irq: create interrupts-extended property) and
      9ec36caf (of/irq: do irq resolution in platform_get_irq) that
      are now also merged.
      
      So let's fix the wake-up events for some selected omaps so devices
      booted in device tree mode won't just hang if deeper power states
      are enabled, and so systems can wake up from suspend to the serial
      port event.
      
      Note that there's no longer need to specify the wake-up bit in
      the pinctrl settings, the request_irq on the wake-up pin takes
      care of that.
      
      Cc: devicetree@vger.kernel.org
      Cc: "Benoît Cousson" <bcousson@baylibre.com>
      Cc: Kevin Hilman <khilman@linaro.org>
      Cc: Nishanth Menon <nm@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      [tony@atomide.com: updated comments, added board LDP]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      31f0820a
    • S
      ARM: dts: omap3-n900: use MATRIX_KEY for keymap · 3fdb7717
      Sebastian Reichel 提交于
      Use MATRIX_KEY macro from dt-bindings/input/input.h
      to make the keyboard matrix human readable.
      Signed-off-by: NSebastian Reichel <sre@kernel.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      3fdb7717
    • S
      ARM: dts: omap3-n900: Add sound support · f7d0f2a0
      Sebastian Reichel 提交于
      This patch adds support for the Nokia N900's sound
      system.
      Signed-off-by: NSebastian Reichel <sre@kernel.org>
      Reviewed-by: NMark Brown <broonie@linaro.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      f7d0f2a0
    • S
      ARM: dts: omap3-n900: Add WL1251 support · c1ad2206
      Sebastian Reichel 提交于
      Add device tree support for the wireless chip
      built into the Nokia N900.
      Signed-off-by: NSebastian Reichel <sre@debian.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      c1ad2206
  7. 19 3月, 2014 1 次提交
  8. 03 3月, 2014 5 次提交
  9. 14 2月, 2014 1 次提交
  10. 07 12月, 2013 1 次提交
    • T
      ARM: dts: Fix booting for secure omaps · f2e2c9d9
      Tony Lindgren 提交于
      Commit 7ce93f31 (ARM: OMAP2+: Fix more missing data for omap3.dtsi file)
      fixed missing device tree data for omaps, but did not account for some of the
      hardware modules being inaccessible for secure omaps. This causes the
      following error on secure omaps:
      
      Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa0c5048
      SMP ARM
      Modules linked in:
      CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W    3.13.0-rc2+ #446
      task: ce057b40 ti: ce058000 task.ti: ce058000
      PC is at omap_aes_dma_stop+0x24/0x3c
      LR is at omap_aes_probe+0x1cc/0x584
         psr: 60000113
      sp : ce059e20  ip : ce0b4ee0  fp : 00000000
      r10: c0573ae8  r9 : c0749508  r8 : 00000000
      r7 : ce0b4e00  r6 : 00000000  r5 : ce0b4e10  r4 : ce274890
      r3 : fa0c5048  r2 : 00000048  r1 : 0000002c  r0 : ce274890
      Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      Control: 10c5387d  Table: 80004019  DAC: 00000015
      Process swapper/0 (pid: 1, stack limit = 0xce058248)
      Stack: (0xce059e20 to 0xce05a000)
      9e20: c0749508 0000a1ff 00000000 c016cd8c c06b5a06 ce2a45f0 ce2a4570 ce0b5fb0
      9e40: 00000000 480c5000 480c504f c0abe4e4 00000200 00000000 00000000 00000000
      9e60: ce0b4e10 ce0b4e10 c082da3c c082da3c c02b8c70 c077c610 c0749508 00000000
      9e80: 00000000 c02b9e7c c02b9e64 ce0b4e10 00000000 c02b8b20 ce0b4e10 ce0b4e44
      9ea0: c082da3c c02b8cd8 00000000 ce059eb8 c082da3c c02b7408 ce079edc ce0b1a34
      9ec0: c082da3c c082da3c ce2a0280 00000000 c08158d8 c02b8358 c0663405 c0663405
      9ee0: 00000073 c082da3c c079e4e8 c07ab3bc c0844340 c02b9334 00000000 00000006
      9f00: c079e4e8 c0008920 c067f6bf c0ac7c6b 00000000 c0712e28 00000000 00000000
      9f20: c0712e38 ce059f38 00000093 c0ac7c82 00000000 c0058994 00000000 c07130e8
      9f40: c07127b8 00000093 00000006 00000006 00000001 00000006 00000006 c079e4e8
      9f60: c07ab3bc c0844340 00000093 c0749508 c079e4f4 c0749c64 00000006 00000006
      9f80: c0749508 00000000 00000000 c0517e2c 00000000 00000000 00000000 00000000
      9fa0: 00000000 c0517e34 00000000 c000dfb8 00000000 00000000 00000000 00000000
      9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff ffffffff
      (omap_aes_probe+0x1cc/0x584)
      (platform_drv_probe+0x18/0x48)
      (driver_probe_device+0xb0/0x200)
      (__driver_attach+0x68/0x8c)
      (bus_for_each_dev+0x50/0x88)
      (bus_add_driver+0xcc/0x1c8)
      (driver_register+0x9c/0xe0)
      (do_one_initcall+0x98/0x140)
      (kernel_init_freeable+0x16c/0x23c)
      (kernel_init+0x8/0x100)
      (ret_from_fork+0x14/0x3c)
      Code: e1811002 e5932020 e590300c e0833002 (e593c000)
      
      Let's fix the issue by adding omap34xx-hs.dtsi and omap36xx-hs.dtsi and make
      n900, n9 and n950 to use them. This way we have the aes, sham and timer12
      disabled for secure devices the same way legacy booting does based on the
      omap34xx_gp_hwmod_ocp_ifs and omap36xx_gp_hwmod_ocp_ifs arrays in
      omap_hwmod_3xxx_data.c.
      Reported-by: NSebastian Reichel <sre@debian.org>
      Acked-By: NSebastian Reichel <sre@debian.org>
      Tested-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      f2e2c9d9
  11. 26 11月, 2013 1 次提交
    • T
      ARM: OMAP2+: Fix eMMC on n900 with device tree · edd5eb4e
      Tony Lindgren 提交于
      Looks like we need to configure the regulators and use the pdata
      quirk to make eMMC work with device tree.
      
      It seems that mostly vaux3 is used, and only some earlier revisions
      used vmmc2. This has been tested to work on devices where the
      system_rev passed by the bootloader has versions 0x0010, 0x2101
      and 0x2204.
      
      Cc: devicetree@vger.kernel.org
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: NSebastian Reichel <sre@debian.org>
      [tony@atomide.com: updated with pinctrl changes and comments from Sebastian]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      edd5eb4e
  12. 23 10月, 2013 12 次提交
  13. 21 10月, 2013 1 次提交
  14. 08 10月, 2013 1 次提交