1. 26 5月, 2009 8 次提交
    • M
      davinci: Add base address and timer flexibility · f64691b3
      Mark A. Greer 提交于
      The davinci timer code currently hardcodes the timer register
      base addresses, the timer irq numbers, and the timers to use
      for clock events and clocksource.  This won't work for some
      a new SoC so put those values into the soc_info structure
      and set them up in the SoC-specific files.
      Signed-off-by: NMark A. Greer <mgreer@mvista.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      f64691b3
    • M
      davinci: Move interrupt ctlr info to SoC infrastructure · 673dd36f
      Mark A. Greer 提交于
      Use the SoC infrastructure to hold the interrupt controller
      information (i.e., base address, default priorities,
      interrupt controller type, and the number of IRQs).
      
      The interrupt controller base, although initially put
      in the soc_info structure's intc_base field, is eventually
      put in the global 'davinci_intc_base' so the low-level
      interrupt code can access it without a dereference.
      
      These changes enable the SoC default irq priorities to be
      put in the SoC-specific files, and the interrupt controller
      to be at any base address.
      Signed-off-by: NMark A. Greer <mgreer@mvista.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      673dd36f
    • M
      davinci: Move pinmux setup info to SoC infrastructure · 0e585952
      Mark A. Greer 提交于
      The pinmux register base and setup can be different for different
      SoCs so move the pinmux reg base, pinmux table (and its size) to
      the SoC infrastructure.
      Signed-off-by: NMark A. Greer <mgreer@mvista.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      0e585952
    • M
      davinci: Add support for multiple PSCs · d81d188c
      Mark A. Greer 提交于
      The current code to support the DaVinci Power and Sleep Controller (PSC)
      assumes that there is only one controller.  This assumption is no longer
      valid so expand the support to allow greater than one PSC.
      
      To accomplish this, put the base addresses for the PSCs in the SoC
      infrastructure so it can be referenced by the PSC code.  This also
      requires adding an extra parameter to davinci_psc_config() to specify
      the PSC that is to be enabled/disabled.
      Signed-off-by: NMark A. Greer <mgreer@mvista.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      d81d188c
    • M
      davinci: Add clock init call to common init routine · 66e0c399
      Mark A. Greer 提交于
      All of the davinci SoCs need to call davinci_clk_init() so
      put the call in the common init routine.
      Signed-off-by: NMark A. Greer <mgreer@mvista.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      66e0c399
    • M
      davinci: Support JTAG ID register at any address · b9ab1279
      Mark A. Greer 提交于
      The Davinci cpu_is_davinci_*() macros use the SoC part number
      and variant retrieved from the JTAG ID register to determine the
      type of cpu that the kernel is running on.  Currently, the code to
      read the JTAG ID register assumes that the register is always at
      the same base address.  This isn't true on some newer SoCs.
      
      To solve this, have the SoC-specific code set the JTAG ID register
      base address in soc_info structure and add a 'cpu_id' member to it.
      'cpu_id' will be used by the cpu_is_davinci_*() macros to match
      the cpu id.  Also move the info used to identify the cpu type into
      the SoC-specific code to keep all SoC-specific code together.
      
      The common code will read the JTAG ID register, search through
      an array of davinci_id structures to identify the cpu type.
      Once identified, it will set the 'cpu_id' member of the soc_info
      structure to the proper value and the cpu_is_davinci_*() macros
      will now work.
      Signed-off-by: NMark A. Greer <mgreer@mvista.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      b9ab1279
    • M
      davinci: Encapsulate SoC-specific data in a structure · 79c3c0b7
      Mark A. Greer 提交于
      Create a structure to encapsulate SoC-specific information.
      This will assist in generalizing code so it can be used by
      different SoCs that have similar hardware but with minor
      differences such as having a different base address.
      
      The idea is that the code for each SoC fills out a structure
      with the correct information.  The board-specific code then
      calls the SoC init routine which in turn will call a common
      init routine that makes a copy of the structure, maps in I/O
      regions, etc.
      
      After initialization, code can get a pointer to the structure
      by calling davinci_get_soc_info().  Eventually, the common
      init routine will make a copy of all of the data pointed to
      by the structure so the original data can be made __init_data.
      That way the data for SoC's that aren't being used won't consume
      memory for the entire life of the kernel.
      
      The structure will be extended in subsequent patches but
      initially, it holds the map_desc structure for any I/O
      regions the SoC/board wants statically mapped.
      Signed-off-by: NMark A. Greer <mgreer@mvista.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      79c3c0b7
    • K
      davinci: EMAC platform support · ac7b75b5
      Kevin Hilman 提交于
      Add SoC and platform-specific data and init for DaVinci EMAC network
      driver.
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      ac7b75b5
  2. 28 4月, 2009 1 次提交