tree 8ae20547b8fb3a5d914bbb46753dfb72eb9cb9e7
parent eeec0434e8b89fa5f29d71e5f8044dcec7939d1a
parent ade9233f2e0cf4b7bf10fd122c7e9f9310bfd1a5
author Olof Johansson <olof@lixom.net> 1422052735 -0800
committer Olof Johansson <olof@lixom.net> 1422052735 -0800
mergetag object ade9233f2e0cf4b7bf10fd122c7e9f9310bfd1a5
 type commit
 tag imx-soc-3.20
 tagger Shawn Guo <shawn.guo@linaro.org> 1422000377 +0800
 
 The i.MX SoC changes for 3.20:
  - Add .disable_unused function hook for shared gate clock to ensure
    the clock tree use count matches the hardware state
  - Add a deeper idle state for i.MX6SX cpuidle driver powering off the
    ARM core
  - One correction on i.MX6Q esai_ipg parent clock setting
  - Add a missing iounmap call for imx6q_opp_check_speed_grading()
  - Add missing clocks for VF610 UART4, UART5 and SNVS blocks
  - Expand VF610 device tree compatible matching table to cover more
    Vybrid family SoCs
  - Expand i.MX clk-pllv3 a bit with the shift for frequency multiplier
    to support Vybrid's USB PLL oddity
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJUwgT5AAoJEFBXWFqHsHzO2fAIAKnvpNONYdZFI0Q1Z5sIl+/8
 Sl+Cs+dCfG5ZHKcqOQ/1ir1OpCEvZW6QQfnK7j1MKpDCIStnmBXRg723H4bh0Kbx
 7/uB0nF3wrBuMweEoqGsx4fOfKDLgHUzMt+3jNOubiDoQcQIZmxPECsPifj9aVSV
 Z+TkHoslKv4XAKRzuOX2aepLwv1a6OJ3As9gaKVbzF8QVb2JGgvuKafruREfV0dP
 R7XWEscS1vd1xMEKiCMtJcnQ8nKaaToB8oRhk8VvpvgVIReC96PeAbrA7melVEjR
 paqlnp1qZlf+M03rebvmrHVLFT6OWRTULJ3jh1D8U8AJaNnAw8u1W1k6cIeWMos=
 =Vsin
 -----END PGP SIGNATURE-----

Merge tag 'imx-soc-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/soc

Merge "ARM: imx: soc changes for 3.20" from Shawn Guo:

The i.MX SoC changes for 3.20:
 - Add .disable_unused function hook for shared gate clock to ensure
   the clock tree use count matches the hardware state
 - Add a deeper idle state for i.MX6SX cpuidle driver powering off the
   ARM core
 - One correction on i.MX6Q esai_ipg parent clock setting
 - Add a missing iounmap call for imx6q_opp_check_speed_grading()
 - Add missing clocks for VF610 UART4, UART5 and SNVS blocks
 - Expand VF610 device tree compatible matching table to cover more
   Vybrid family SoCs
 - Expand i.MX clk-pllv3 a bit with the shift for frequency multiplier
   to support Vybrid's USB PLL oddity

* tag 'imx-soc-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  ARM: clk-imx6q: refine esai_ipg's parent
  ARM i.MX6q: unmap memory mapped at imx6q_opp_check_speed_grading()
  ARM: imx: clk-vf610: Add clock for SNVS
  ARM: imx: clk-vf610: Add clock for UART4 and UART5
  ARM: imx: drop CPUIDLE_FLAG_TIME_VALID from cpuidle-imx6sx
  ARM: imx: support arm power off in cpuidle for i.mx6sx
  ARM: imx: remove unnecessary setting for DSM
  ARM: imx: correct the hardware clock gate setting for shared nodes
  ARM: imx: pllv3: add shift for frequency multiplier
  ARM vf610: add compatibilty strings of supported Vybrid SoC's

Signed-off-by: Olof Johansson <olof@lixom.net>
