1. 21 12月, 2010 9 次提交
  2. 18 12月, 2010 9 次提交
  3. 15 12月, 2010 4 次提交
  4. 13 12月, 2010 3 次提交
  5. 11 12月, 2010 6 次提交
  6. 10 12月, 2010 3 次提交
  7. 08 12月, 2010 6 次提交
    • A
      arm: omap2: io: fix clk_get() error check · e281f7ec
      Aaro Koskinen 提交于
      clk_get() return value should be checked with IS_ERR().
      Signed-off-by: NAaro Koskinen <aaro.koskinen@nokia.com>
      Acked-by: NKevin Hilman <khilman@deeprootsystems.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      e281f7ec
    • V
      ARM: S3C24XX: Fix mess with gpio {set,get}_pull callbacks · 812c4e40
      Vasily Khoruzhick 提交于
      Currently the {set,get}_pull callbacks of the s3c24xx_gpiocfg_default structure
      are initalized via s3c_gpio_{get,set}pull_1up. This results in a linker
      error when only CONFIG_CPU_S3C2442 is selected:
      
      arch/arm/plat-s3c24xx/built-in.o:(.data+0x13f4): undefined reference to
      `s3c_gpio_getpull_1up'
      arch/arm/plat-s3c24xx/built-in.o:(.data+0x13f8): undefined reference to
      `s3c_gpio_setpull_1up'
      
      The s3c2442 has pulldowns instead of pullups compared to the s3c2440.
      The method of controlling them is the same though.
      So this patch modifies the existing s3c_gpio_{get,set}pull_1up helper functions
      to take an additional parameter deciding whether the pin has a pullup or pulldown.
      The s3c_gpio_{get,set}pull_1{down,up} functions then wrap that functions passing
      either S3C_GPIO_PULL_UP or S3C_GPIO_PULL_DOWN.
      
      Furthermore this patch sets up the s3c24xx_gpiocfg_default.{get,set}_pull fields
      in the s3c244{0,2}_map_io function to the new pulldown helper functions.
      
      Based on patch from "Lars-Peter Clausen" <lars@metafoo.de>
      Signed-off-by: NVasily Khoruzhick <anarsoul@gmail.com>
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      812c4e40
    • T
      omap1: Fix gpio mpuio bank to work for multi-omap for 7xx/15xx/16xx · 5de62b86
      Tony Lindgren 提交于
      We need to divide the 15xx/16xx offset by 2 for 7xx. Use bank->stride
      for that. This allows us to get rid of the duplicate defines for the
      MPUIO registers.
      
      Note that this will cause omap-keypad.c driver to not work on 7xx.
      However, the right fix there is to move over to matrix_keypad instead
      as suggested by Cory Maccarrone <darkstar6262@gmail.com> and
      Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>.
      
      Cc: Cory Maccarrone <darkstar6262@gmail.com>
      Acked-by: NJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      5de62b86
    • V
      OMAP: GPIO: Implement GPIO as a platform device · 77640aab
      Varadarajan, Charulatha 提交于
      Implement GPIO as a platform device.
      
      GPIO APIs are used in machine_init functions. Hence it is
      required to complete GPIO probe before board_init. Therefore
      GPIO device register and driver register are implemented as
      postcore_initcalls.
      
      omap_gpio_init() does nothing now and this function would be
      removed in the next patch as it's usage is spread across most
      of the board files.
      
      Inorder to convert GPIO as platform device, modifications are
      required in clockxxxx_data.c file for OMAP1 so that device names
      can be used to obtain clock instead of getting clocks by
      name/NULL ptr.
      
      Use runtime pm APIs (pm_runtime_put*/pm_runtime_get*) for enabling
      or disabling the clocks, modify sysconfig settings and remove usage
      of clock FW APIs.
      Note 1: Converting GPIO driver to use runtime PM APIs is not done as a
      separate patch because GPIO clock names are different for various OMAPs
      and are different for some of the banks in the same CPU. This would need
      usage of cpu_is checks and bank id checks while using clock FW APIs in
      the gpio driver. Hence while making GPIO a platform driver framework,
      PM runtime APIs are used directly.
      
      Note 2: While implementing GPIO as a platform device, pm runtime APIs
      are used as mentioned above and modification is not done in gpio's
      prepare for idle/ resume after idle functions. This would be done
      in the next patch series and GPIO driver would be made to use dev_pm_ops
      instead of sysdev_class in that series only.
      
      Due to the above, the GPIO driver implicitly relies on
      CM_AUTOIDLE = 1 on its iclk for power management to work, since the
      driver never disables its iclk.
      This would be taken care in the next patch series (see Note 3 below).
      
      Refer to
      http://www.mail-archive.com/linux-omap@vger.kernel.org/msg39112.html
      for more details.
      
      Note 3: only pm_runtime_get_sync is called in gpio's probe() and
      pm_runtime_put* is never called. This is to make the implementation
      similar to the existing GPIO code. Another patch series would be sent
      to correct this.
      
      In OMAP3 and OMAP4 gpio's debounce clocks are optional clocks. They
      are enabled/ disabled whenever required using clock framework APIs
      
      TODO:
      1. Cleanup the GPIO driver. Use function pointers and register
      offest pointers instead of using hardcoded values
      2. Remove all cpu_is_ checks and OMAP specific macros
      3. Remove usage of gpio_bank array so that only
         instance specific information is used in driver code
      4. Rename 'method'/ avoid it's usage
      5. Fix the non-wakeup gpios handling for OMAP2430, OMAP3 & OMAP4
      6. Modify gpio's prepare for idle/ resume after idle functions
         to use runtime pm implentation.
      Signed-off-by: NCharulatha V <charu@ti.com>
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Reviewed-by: NBasak, Partha <p-basak2@ti.com>
      Acked-by: NKevin Hilman <khilman@deeprootsystems.com>
      [tony@atomide.com: updated for bank specific revision and updated boards]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      77640aab
    • V
      OMAP2+: GPIO: device registration · f547170f
      Varadarajan, Charulatha 提交于
      Use omap_device_build() API to do platform_device_register of
      GPIO devices. For OMAP2+ chips, the device specific data defined
      in the centralized hwmod database will be used.
      
      gpio_init needs to be done before machine_init functions access
      gpio APIs. Hence gpio_init is made as a postcore_initcall.
      Signed-off-by: NCharulatha V <charu@ti.com>
      Acked-by: NBenoit Cousson <b-cousson@ti.com>
      Reviewed-by: NBasak, Partha <p-basak2@ti.com>
      Acked-by: NKevin Hilman <khilman@deeprootsystems.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      f547170f
    • B
      OMAP4: hwmod data: Add GPIO · 9780a9cf
      Benoit Cousson 提交于
      Add GPIO hwmod data for OMAP4
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NCharulatha V <charu@ti.com>
      Acked-by: NKevin Hilman <khilman@deeprootsystems.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      9780a9cf