1. 08 2月, 2017 3 次提交
    • C
      clocksource/drivers/ostm: Add renesas-ostm timer driver · fb6002a8
      Chris Brandt 提交于
      This patch adds a OSTM driver for the Renesas architecture.
      The OS Timer (OSTM) has independent channels that can be
      used as a freerun or interval times.
      This driver uses the first probed device as a clocksource
      and then any additional devices as clock events.
      Signed-off-by: NChris Brandt <chris.brandt@renesas.com>
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      fb6002a8
    • L
      clocksource/drivers/gemini: Add driver for the Cortina Gemini · 4750535b
      Linus Walleij 提交于
      This is a rewrite of the Gemini timer
      driver in arch/arm/mach-gemini/timer.c trying to do everything
      the device tree way:
      
      - Make every IO-access relative to a base address and dynamic
        so we can do a dynamic ioremap and get going.
      - Do not poke around directly in the global syscon registers,
        access them using the syscon regmap style design pattern for
        the one register we need to check.
      - Find register range and interrupt from the device tree.
      
      Cc: Janos Laube <janos.dev@gmail.com>
      Cc: Paulius Zaleckas <paulius.zaleckas@gmail.com>
      Cc: Hans Ulli Kroll <ulli.kroll@googlemail.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      4750535b
    • D
      clockevents: Add a clkevt-of mechanism like clksrc-of · 376bc271
      Daniel Lezcano 提交于
      The current code uses the CLOCKSOURCE_OF_DECLARE macro to fill the clksrc
      table with a t-uple (name, init_function).
      
      Unfortunately it ends up to the clockevent and the clocksource being
      both initialized with this macro. It is not a problem by itself but there
      is not a clear distinction between a clockevent and a clocksource in the
      code initialization path. Somebody can argue there are the same IP block
      and the same DT node. But conceptually from the software side, there are
      two distincts entities and as is they should be initialized separetely.
      Some drivers which do not have a clocksource end up by using the
      CLOCKSOURCE_OF_DECLARE macro to declare a clockevent.
      
      Another result is the fuzzy organization in the clocksource directory,
      where the clockevents are implemented in the same file than the
      clocksources or file labelled timer-something implementing a clocksource.
      
      This patch provides another macro to specifically declare a clockevent in
      the same way than the clocksource and gives the opportunity to write two
      separate drivers, one for the clocksource and another for the clockevents.
      
      Hopefully, that can help to do some housework in the directory, perhaps
      split the drivers in to entities, for example:
      	- clksrc-rockchip.c
      	- clkevt-rockchip.c
      
      Also, it gives the possibility to declare clocksources separately in the
      DT and then use a clocksource from IP block while while clockevents are
      used from another IP block.
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      376bc271
  2. 01 12月, 2016 1 次提交
  3. 21 10月, 2016 1 次提交
    • R
      clocksource: Add J-Core timer/clocksource driver · 9995f4f1
      Rich Felker 提交于
      At the hardware level, the J-Core PIT is integrated with the interrupt
      controller, but it is represented as its own device and has an
      independent programming interface. It provides a 12-bit countdown
      timer, which is not presently used, and a periodic timer. The interval
      length for the latter is programmable via a 32-bit throttle register
      whose units are determined by a bus-period register. The periodic
      timer is used to implement both periodic and oneshot clock event
      modes; in oneshot mode the interrupt handler simply disables the timer
      as soon as it fires.
      
      Despite its device tree node representing an interrupt for the PIT,
      the actual irq generated is programmable, not hard-wired. The driver
      is responsible for programming the PIT to generate the hardware irq
      number that the DT assigns to it.
      
      On SMP configurations, J-Core provides cpu-local instances of the PIT;
      no broadcast timer is needed. This driver supports the creation of the
      necessary per-cpu clock_event_device instances.
      
      A nanosecond-resolution clocksource is provided using the J-Core "RTC"
      registers, which give a 64-bit seconds count and 32-bit nanoseconds
      that wrap every second. The driver converts these to a full-range
      32-bit nanoseconds count.
      Signed-off-by: NRich Felker <dalias@libc.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: devicetree@vger.kernel.org
      Cc: linux-sh@vger.kernel.org
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: Rob Herring <robh+dt@kernel.org>
      Link: http://lkml.kernel.org/r/b591ff12cc5ebf63d1edc98da26046f95a233814.1476393790.git.dalias@libc.orgSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      9995f4f1
  4. 24 9月, 2016 1 次提交
    • S
      arm64: arch_timer: Work around QorIQ Erratum A-008585 · f6dc1576
      Scott Wood 提交于
      Erratum A-008585 says that the ARM generic timer counter "has the
      potential to contain an erroneous value for a small number of core
      clock cycles every time the timer value changes".  Accesses to TVAL
      (both read and write) are also affected due to the implicit counter
      read.  Accesses to CVAL are not affected.
      
      The workaround is to reread TVAL and count registers until successive
      reads return the same value.  Writes to TVAL are replaced with an
      equivalent write to CVAL.
      
      The workaround is to reread TVAL and count registers until successive reads
      return the same value, and when writing TVAL to retry until counter
      reads before and after the write return the same value.
      
      The workaround is enabled if the fsl,erratum-a008585 property is found in
      the timer node in the device tree.  This can be overridden with the
      clocksource.arm_arch_timer.fsl-a008585 boot parameter, which allows KVM
      users to enable the workaround until a mechanism is implemented to
      automatically communicate this information.
      
      This erratum can be found on LS1043A and LS2080A.
      Acked-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NScott Wood <oss@buserror.net>
      [will: renamed read macro to reflect that it's not usually unstable]
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      f6dc1576
  5. 16 9月, 2016 1 次提交
  6. 28 6月, 2016 18 次提交
  7. 09 5月, 2016 1 次提交
  8. 28 4月, 2016 1 次提交
  9. 25 2月, 2016 1 次提交
  10. 26 1月, 2016 2 次提交
  11. 12 1月, 2016 2 次提交
  12. 15 12月, 2015 8 次提交