1. 15 12月, 2011 9 次提交
    • D
      ARM: OMAP2+: UART: Allow UART parameters to be configured from board file. · c86845db
      Deepak K 提交于
      The following UART parameters are defined within the UART driver:
      
      1). Whether the UART uses DMA (dma_enabled), by default set to 0
      2). The size of dma buffer (set to 4096 bytes)
      3). The time after which the dma should stop if no more data is received.
      4). The auto suspend delay that will be passed for pm_runtime_autosuspend
          where uart will be disabled after timeout
      
      Different UARTs may be used for different purpose such as the console,
      for interfacing bluetooth chip, for interfacing to a modem chip, etc.
      Therefore, it is necessary to be able to customize the above settings
      for a given board on a per UART basis.
      
      This change allows these parameters to be configured from the board file
      and allows the parameters to be configured for each UART independently.
      
      If a board does not define its own custom parameters for the UARTs, then
      use the default parameters in the structure "omap_serial_default_info".
      The default parameters are defined to be the same as the current settings
      in the UART driver to avoid breaking the UART for any cuurnelty supported
      boards. By default, make all boards use the default UART parameters.
      Signed-off-by: NDeepak K <deepak.k@ti.com>
      Signed-off-by: NJon Hunter <jon-hunter@ti.com>
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: Greg Kroah-Hartman <gregkh@suse.de> (for drivers/tty changes)
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      c86845db
    • G
      ARM: OMAP2+: UART: Add wakeup mechanism for omap-uarts · 62f3ec5f
      Govindraj.R 提交于
      From the runtime callbacks enable hwmod wakeups for uart which will
      internally enable io-pad wakeups for uarts if they have rx-pad pins
      set as wakeup capabale.
      
      Use the io-ring wakeup mechanism after uart clock gating and leave
      the PM_WKST set for uart to default reset values cleanup the
      code in serial.c which was handling PM_WKST reg.
      Irq_chaing(PRM_DRIVER) is used to wakeup uart after uart clocks are gated
      using pad wakeup mechanism.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: Greg Kroah-Hartman <gregkh@suse.de> (for drivers/tty changes)
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      62f3ec5f
    • G
      ARM: OMAP2+: UART: Move errata handling from serial.c to omap-serial · 94734749
      Govindraj.R 提交于
      Move the errata handling mechanism from serial.c to omap-serial file
      and utilise the same func in driver file.
      
      Errata i202, i291 are moved to be handled with omap-serial
      Moving the errata macro from serial.c file to driver header file
      as from on errata will be handled in driver file itself.
      Corrected errata id from chapter reference 2.15 to errata id i291.
      
      Removed errata and dma_enabled fields from omap_uart_state struct
      as they are no more needed with errata handling done within omap-serial.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: NAlan Cox <alan@linux.intel.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      94734749
    • G
      ARM: OMAP2+: UART: Get context loss count to context restore · ec3bebc6
      Govindraj.R 提交于
      Avoid unconditional context restore every time we gate uart
      clocks. Check whether context loss happened based on which
      we can context restore uart regs from uart_port structure.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: Greg Kroah-Hartman <gregkh@suse.de> (for drivers/tty changes)
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      ec3bebc6
    • G
      ARM: OMAP2+: UART: Remove uart reset function. · 32212897
      Govindraj.R 提交于
      Remove the uart reset function which is configuring the
      TX empty irq which can now be handled within omap-serial driver.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: Greg Kroah-Hartman <gregkh@suse.de> (for drivers/tty changes)
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      32212897
    • G
      ARM: OMAP2+: UART: Ensure all reg values configured are available from port structure · c538d20c
      Govindraj.R 提交于
      Add missing uart regs to uart_port structure which can be used in
      context restore. Store dll, dlh, mdr1, scr, efr, lcr, mcr reg values
      into uart_port structure while configuring individual port in termios
      function.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: Greg Kroah-Hartman <gregkh@suse.de> (for drivers/tty changes)
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      c538d20c
    • G
      ARM: OMAP2+: UART: Remove mapbase/membase fields from pdata. · edd70ad7
      Govindraj.R 提交于
      The mapbase (start_address), membase(io_remap cookie) part of
      pdata struct omap_uart_port_info are removed as this should be
      derived within driver.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: Greg Kroah-Hartman <gregkh@suse.de> (for drivers/tty changes)
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      edd70ad7
    • G
      ARM: OMAP2+: UART: Cleanup part of clock gating mechanism for uart · 273558b3
      Govindraj.R 提交于
      Currently we use a shared irq handler to identify uart activity and then
      trigger a timer. By default the timeout value is zero and can be set or
      modified from sysfs. If there was no uart activity for the period set
      through sysfs, the timer will expire and call timer handler this will
      set a flag can_sleep using which decision to gate uart clocks can be taken.
      
      Since the clock gating mechanism is outside the uart driver, we currently
      use this mechanism. In preparation to runtime implementation for omap-serial
      driver we can cleanup this mechanism and use runtime API's to gate uart clocks.
      
      Removes the following:
      * timer related info from local uart_state struct
      * the code used to set timeout value from sysfs.
      * irqflags used to set shared irq handler.
      * un-used function omap_uart_check_wakeup.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: Greg Kroah-Hartman <gregkh@suse.de> (for drivers/tty changes)
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      273558b3
    • G
      ARM: OMAP2+: UART: cleanup + remove uart pm specific API · 8384c974
      Govindraj.R 提交于
      In preparation to UART runtime conversion remove uart specific calls
      from pm24xx/34xx files and their definition from serial.c
      These func calls will no more be used with upcoming uart runtime design.
      
      1.) omap_uart_prepare_suspend :- can be taken care with driver suspend hooks.
      2.) omap_uart_enable_irqs :- Used to enable/disable uart irq's in suspend
          path from PM code, this is removed as same is handled by
          uart_suspend_port/uart_resume_port in omap-serial driver which will
          do an port_shutdown on suspend freeing irq and port_startup on resume
          enabling back irq.
      3.) Remove prepare_idle/resume_idle calls used to gate uart clocks.
          UART clocks can be gated within driver using runtime funcs
          and be woken up using irq_chaining from omap_prm driver.
      4.) Remove console_locking from idle path as clock gating is done withing
          driver itself with runtime API. Remove is_suspending check used to acquire
          console_lock.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      8384c974
  2. 14 12月, 2011 6 次提交
  3. 19 11月, 2011 1 次提交
  4. 18 11月, 2011 1 次提交
  5. 16 11月, 2011 2 次提交
  6. 11 11月, 2011 1 次提交
  7. 08 11月, 2011 1 次提交
    • T
      ARM: OMAP: HWMOD: Unify DSS resets for OMAPs · 13662dc5
      Tomi Valkeinen 提交于
      This patch adds a custom DSS reset function used on OMAPs from OMAP2
      forward.
      
      The function doesn't actually do a reset, it only waits for the reset to
      complete. The reason for this is that on OMAP4 there is no possibility
      to do a SW reset, and on OMAP2/3 doing a SW reset for dss_core resets
      all the other DSS modules also, thus breaking the HWMOD model where
      every DSS module is handled independently.
      
      This fixes the problem with DSS reset on OMAP4, caused by the fact that
      because there's no SW reset for dss_core on OMAP4, the HWMOD framework
      doesn't try to reset dss_core and thus the DSS clocks were never enabled
      at the same time. This causes causes the HWMOD reset to fail for
      dss_dispc and dss_rfbi.
      
      The common reset function will also allow us to fix another problem in
      the future: before doing a reset we need to disable DSS outputs, which
      are in some cases enabled by the bootloader, as otherwise DSS HW seems
      to get more or less stuck, requiring a power reset to recover.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      [paul@pwsan.com: modified to build arch/arm/mach-omap2/display.o
       unconditionally to avoid an error when !CONFIG_OMAP2_DSS]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      13662dc5
  8. 05 11月, 2011 2 次提交
  9. 27 10月, 2011 1 次提交
  10. 20 10月, 2011 5 次提交
  11. 08 10月, 2011 1 次提交
    • P
      ARM: OMAP3: PM: fix I/O wakeup and I/O chain clock control detection · b02b9172
      Paul Walmsley 提交于
      The way that we detect which OMAP3 chips support I/O wakeup and
      software I/O chain clock control is broken.
      
      Currently, I/O wakeup is marked as present for all OMAP3 SoCs other
      than the AM3505/3517.  The TI81xx family of SoCs are at present
      considered to be OMAP3 SoCs, but don't support I/O wakeup.  To resolve
      this, convert the existing blacklist approach to an explicit,
      whitelist support, in which only SoCs which are known to support I/O
      wakeup are listed.  (At present, this only includes OMAP34xx,
      OMAP3503, OMAP3515, OMAP3525, OMAP3530, and OMAP36xx.)
      
      Also, the current code incorrectly detects the presence of a
      software-controllable I/O chain clock on several chips that don't
      support it.  This results in writes to reserved bitfields, unnecessary
      delays, and console messages on kernels running on those chips:
      
          http://www.spinics.net/lists/linux-omap/msg58735.html
      
      Convert this test to a feature test with a chip-by-chip whitelist.
      
      Thanks to Dave Hylands <dhylands@gmail.com> for reporting this problem
      and doing some testing to help isolate the cause.  Thanks to Steve
      Sakoman <sakoman@gmail.com> for catching a bug in the first version of
      this patch.  Thanks to Russell King <linux@arm.linux.org.uk> for
      comments.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Dave Hylands <dhylands@gmail.com>
      Cc: Steve Sakoman <sakoman@gmail.com>
      Tested-by: NSteve Sakoman <sakoman@gmail.com>
      Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      b02b9172
  12. 05 10月, 2011 1 次提交
    • N
      ARM: OMAP: omap_device: Add omap_device_get_by_hwmod_name · 1f8a7d52
      Nishanth Menon 提交于
      An API which translates a standard hwmod name to corresponding
      platform_device is useful for drivers when they need to look up the
      device associated with a hwmod name to map back into the device
      structure pointers. These ideally should be used by drivers in
      mach directory. Using a generic hwmod name like "gpu" instead of
      the actual device name which could change in the future, allows
      us to:
      a) Could in effect help replace apis such as omap2_get_mpuss_device,
      omap2_get_iva_device, omap2_get_l3_device, omap4_get_dsp_device,
      etc..
      b) Scale to more devices rather than be restricted to named functions
      c) Simplify driver's platform_data from passing additional fields
      all doing the same thing with different function pointer names
      just for accessing a different device name.
      Signed-off-by: NNishanth Menon <nm@ti.com>
      [b-cousson@ti.com: Adapt it to the new pdev pointer inside od,
      remove the unneeded helpers, and fold the next patch here]
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      1f8a7d52
  13. 27 9月, 2011 9 次提交