26 Sep, 2014

5 commits

  • This adds a SoC driver to be used by the ARM RealView
    reference boards. We create the "versatile" directory to hold
    the different ARM reference designs as per the pattern of the
    clk directory layout. The driver utilze the syscon to get to
    the register needed. After this we can use sysfs to get at
    some SoC properties on RealView DT variants like this:

    > cd /sysbus/soc/devices/soc0
    > ls
    board family machine power subsystem
    build fpga manufacturer soc_id uevent
    > cat family
    Versatile
    > cat fpga
    Multi-layer AXI
    > cat board
    HBI-0147
    > cat build
    03

    Signed-off-by: Linus Walleij
    Signed-off-by: Arnd Bergmann

    Conflicts:
    drivers/soc/Kconfig
    drivers/soc/Makefile

    Linus Walleij
     
  • This driver enabled us to drive the reboot of the Versatile family
    of ARM reference boards. Even though only the RealView boards are
    supported initially, these boards all have the same procedure for
    reboot:

    - Write a magic value into an unlocking register
    - Write another magic value into a reset control register

    The driver will be reusable for Versatile and possibly also the
    Integrator family of reference boards.

    Cc: Dmitry Eremin-Solenikov
    Cc: David Woodhouse
    Acked-By: Sebastian Reichel
    Signed-off-by: Linus Walleij
    Signed-off-by: Arnd Bergmann

    Linus Walleij
     
  • This makes it possible to create a set of LEDs from a syscon
    MFD instance, which is lean mean and clean on the ARM
    reference designs and can replace the Versatile LEDs driver
    in the long run, as well as other custom syscon LEDs drivers.

    Cc: Bryan Wu
    Cc: Richard Purdie
    [Fixed cocinelle warnings]
    Signed-off-by: Fengguang Wu
    Signed-off-by: Linus Walleij
    Signed-off-by: Arnd Bergmann

    Linus Walleij
     
  • …t/tmlind/linux-omap into next/drivers

    Merge "part 2 of omap intc changes" from Tony Lindgren:

    Second part of omap intc interrupt controller changes to
    move it to drivers.

    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    * tag 'intc-part2-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
    irqchip: omap-intc: remove unnecessary comments
    irqchip: omap-intc: correct maximum number or MIR registers
    irqchip: omap-intc: enable TURBO idle mode
    irqchip: omap-intc: enable IP protection
    irqchip: omap-intc: remove unnecesary of_address_to_resource() call
    irqchip: omap-intc: comment style cleanup
    irqchip: omap-intc: minor improvement to omap_irq_pending()
    arm: omap: irq: move irq.c to drivers/irqchip/
    irqchip: add irq-omap-intc.h header
    arm: omap2: n8x0: move i2c devices to DT

    Arnd Bergmann
     
  • …git/mripard/linux into next/drivers

    Pull "Allwinner drivers additions for 3.18" from Maxime Ripard:

    Nothing major, just handling the RTC driver changes needed for the A31/A23.

    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    * tag 'sunxi-drivers-for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux:
    rtc: sunxi: Depend on platforms sun4i/sun7i that actually have the rtc
    rtc: sun6i: Add sun6i RTC driver

    Arnd Bergmann
     

25 Sep, 2014

2 commits

  • Fixes below build break by not switching to stubs when the driver is a module:

    drivers/soc/ti/knav_dma.c:418:7: error: redefinition of 'knav_dma_open_channel'
    void *knav_dma_open_channel(struct device *dev, const char *name,
    ^
    In file included from drivers/soc/ti/knav_dma.c:26:0:
    include/linux/soc/ti/knav_dma.h:165:21: note: previous definition of 'knav_dma_open_channel' was here
    static inline void *knav_dma_open_channel(struct device *dev, const char *name,
    ^

    Cc: Santosh Shilimkar
    Signed-off-by: Olof Johansson

    Olof Johansson
     
  • …santosh/linux-keystone into next/drivers

    Merge "soc: Keystone SOC Navigator drivers for 3.18" from Santosh Shilimkar:

    Keystone SOC Navigator drivers for 3.18

    The Keystone Multi-core Navigator contains QMSS and packet DMA
    subsystems which interwork together to form the Navigator cloud
    used by various subsystems like NetCP, SRIO, SideBand Crypto
    engines etc.

    * tag 'drivers-soc-ti-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone:
    MAINTAINERS: Add Keystone Multicore Navigator drivers entry
    soc: ti: add Keystone Navigator DMA support
    Documentation: dt: soc: add Keystone Navigator DMA bindings
    soc: ti: add Keystone Navigator QMSS driver
    Documentation: dt: soc: add Keystone Navigator QMSS bindings

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

    Olof Johansson
     

24 Sep, 2014

8 commits

  • Signed-off-by: Santosh Shilimkar

    Santosh Shilimkar
     
  • The Keystone Navigator DMA driver sets up the dma channels and flows for
    the QMSS(Queue Manager SubSystem) who triggers the actual data movements
    across clients using destination queues. Every client modules like
    NETCP(Network Coprocessor), SRIO(Serial Rapid IO) and CRYPTO
    Engines has its own instance of packet dma hardware. QMSS has also
    an internal packet DMA module which is used as an infrastructure
    DMA with zero copy.

    Initially this driver was proposed as DMA engine driver but since the
    hardware is not typical DMA engine and hence doesn't comply with typical
    DMA engine driver needs, that approach was naked. Link to that
    discussion -
    https://lkml.org/lkml/2014/3/18/340

    As aligned, now we pair the Navigator DMA with its companion Navigator
    QMSS subsystem driver.

    Cc: Greg Kroah-Hartman
    Cc: Kumar Gala
    Cc: Olof Johansson
    Cc: Arnd Bergmann
    Cc: Grant Likely
    Cc: Rob Herring
    Cc: Mark Rutland
    Signed-off-by: Sandeep Nair
    Signed-off-by: Santosh Shilimkar

    Santosh Shilimkar
     
  • The Keystone Navigator DMA driver sets up the dma channels and flows for
    the QMSS(Queue Manager SubSystem) who triggers the actual data movements
    across clients using destination queues. Every client modules like
    NETCP(Network Coprocessor), SRIO(Serial Rapid IO) and CRYPTO
    Engines has its own instance of packet dma hardware. QMSS has also
    an internal packet DMA module which is used as an infrastructure
    DMA with zero copy.

    Initially this driver was proposed as DMA engine driver but since the
    hardware is not typical DMA engine and hence doesn't comply with typical
    DMA engine driver needs, that approach was naked. Link to that
    discussion -
    https://lkml.org/lkml/2014/3/18/340

    As aligned, now we pair the Navigator DMA with its companion Navigator
    QMSS subsystem driver.

    Cc: Greg Kroah-Hartman
    Cc: Kumar Gala
    Cc: Olof Johansson
    Cc: Arnd Bergmann
    Cc: Grant Likely
    Cc: Rob Herring
    Cc: Mark Rutland
    Signed-off-by: Sandeep Nair
    Signed-off-by: Santosh Shilimkar

    Santosh Shilimkar
     
  • The QMSS (Queue Manager Sub System) found on Keystone SOCs is one of
    the main hardware sub system which forms the backbone of the Keystone
    Multi-core Navigator. QMSS consist of queue managers, packed-data structure
    processors(PDSP), linking RAM, descriptor pools and infrastructure
    Packet DMA.

    The Queue Manager is a hardware module that is responsible for accelerating
    management of the packet queues. Packets are queued/de-queued by writing or
    reading descriptor address to a particular memory mapped location. The PDSPs
    perform QMSS related functions like accumulation, QoS, or event management.
    Linking RAM registers are used to link the descriptors which are stored in
    descriptor RAM. Descriptor RAM is configurable as internal or external memory.

    The QMSS driver manages the PDSP setups, linking RAM regions,
    queue pool management (allocation, push, pop and notify) and descriptor
    pool management. The specifics on the device tree bindings for
    QMSS can be found in:
    Documentation/devicetree/bindings/soc/keystone-navigator-qmss.txt

    Cc: Greg Kroah-Hartman
    Cc: Kumar Gala
    Cc: Olof Johansson
    Cc: Arnd Bergmann
    Cc: Grant Likely
    Cc: Rob Herring
    Cc: Mark Rutland
    Signed-off-by: Sandeep Nair
    Signed-off-by: Santosh Shilimkar

    Sandeep Nair
     
  • The QMSS (Queue Manager Sub System) found on Keystone SOCs is one of
    the main hardware sub system which forms the backbone of the Keystone
    Multi-core Navigator. QMSS consist of queue managers, packed-data structure
    processors(PDSP), linking RAM, descriptor pools and infrastructure
    Packet DMA.

    The Queue Manager is a hardware module that is responsible for accelerating
    management of the packet queues. Packets are queued/de-queued by writing or
    reading descriptor address to a particular memory mapped location. The PDSPs
    perform QMSS related functions like accumulation, QoS, or event management.
    Linking RAM registers are used to link the descriptors which are stored in
    descriptor RAM. Descriptor RAM is configurable as internal or external memory.

    Cc: Greg Kroah-Hartman
    Cc: Kumar Gala
    Cc: Olof Johansson
    Cc: Arnd Bergmann
    Cc: Grant Likely
    Cc: Rob Herring
    Cc: Mark Rutland
    Signed-off-by: Sandeep Nair
    Signed-off-by: Santosh Shilimkar

    Sandeep Nair
     
  • …mlind/linux-omap into next/drivers

    Mailbox related changes for omaps to get it to work with
    device tree.

    * tag 'mailbox-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
    mailbox/omap: add support for parsing dt devices
    Documentation: dt: add omap mailbox bindings

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

    Olof Johansson
     
  • …nd/linux-omap into next/drivers

    Merge "omap intc changes for v3.18 merge window" from Tony Lindgren:

    Interrupt code related clean-up for omap2 and 3 to make
    it ready to move to drivers/irqchip. Note that this series
    does not yet move the interrupt code to drivers, that will
    be posted separately as a follow-up series.

    Note that this branch has a dependency to patches both
    in fixes-v3.18-not-urgent and soc-for-v3.18 and is based on
    a merge. Without doing the merge, off-idle would not work
    properly for git bisect.

    * tag 'intc-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (325 commits)
    arm: omap: intc: switch over to linear irq domain
    arm: omap: irq: get rid of ifdef hack
    arm: omap: irq: introduce omap_nr_pending
    arm: omap: irq: remove nr_irqs argument
    arm: omap: irq: remove unnecessary header
    arm: omap: irq: drop omap2_intc_handle_irq()
    arm: omap: irq: drop omap3_intc_handle_irq()
    arm: omap: irq: call set_handle_irq() from .init_irq
    arm: omap: irq: move some more code around
    arm: boot: dts: omap2/3/am33xx: drop ti,intc-size
    arm: omap: irq: drop ti,intc-size support
    arm: boot: dts: am33xx/omap3: fix intc compatible flag
    arm: omap: irq: use compatible flag to figure out number of IRQ lines
    arm: omap: irq: add specific compatibles for omap3 and am33xx devices
    arm: omap: irq: drop .handle_irq and .init_irq fields
    arm: omap: irq: use IRQCHIP_DECLARE macro
    arm: omap: irq: call set_handle_irq() from intc_of_init
    arm: omap: irq: make intc_of_init static
    arm: omap: irq: reorganize code a little bit
    arm: omap: irq: always define omap3 support
    ...

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

    Olof Johansson
     
  • Merge " Second drivers series for AT91/3.18" from Nicolas Ferre:

    - move of the PIT (basic timer) from mach-at91 to its proper location:
    drivers/clocksource
    - big cleanup of this driver along the way

    * tag 'at91-drivers2' of git://github.com/at91linux/linux-at91:
    ARM: at91: PIT: Move the driver to drivers/clocksource
    ARM: at91: Give the PIT irq as an argument of at91sam926x_pit_init
    ARM: at91: Convert the boards to the init_time callback
    ARM: at91: soc: Add init_time callback
    ARM: at91: PIT: (Almost) remove the global variables
    ARM: at91: PIT: use request_irq instead of setup_irq
    ARM: at91: PIT: Use pr_fmt
    ARM: at91: PIT: Use consistent exit path in probe
    ARM: at91: dt: Remove init_time definitions
    ARM: at91: PIT: Rework probe functions
    ARM: at91: PIT: Use of_have_populated_dt instead of CONFIG_OF
    ARM: at91: PIT: Use DIV_ROUND_CLOSEST to compute the cycles
    ARM: at91: generic.h: Add include safe guards
    ARM: at91: PIT: Follow the general coding rules

    Signed-off-by: Olof Johansson

    Olof Johansson
     

19 Sep, 2014

2 commits

  • Now that we have Kconfig options for individual sunxi platforms, let
    the rtc-sunxi driver depend on the platforms that actually have this
    hardware, sun4i and sun7i.

    Signed-off-by: Chen-Yu Tsai
    Signed-off-by: Maxime Ripard

    Chen-Yu Tsai
     
  • This patch introduces the driver for the RTC in the Allwinner A31 and
    A23 SoCs.

    Unlike the RTC found in A10/A20 SoCs, which was part of the timer, the
    RTC in A31/A23 are a separate hardware block, which also contain a few
    controls for the RTC block hardware (a regulator and RTC block GPIO pin
    latches), while also having separate interrupts for the alarms.

    The hardware is different enough to make a different driver for it.

    Signed-off-by: Chen-Yu Tsai
    Reviewed-by: Varka Bhadram
    Signed-off-by: Maxime Ripard

    Chen-Yu Tsai
     

17 Sep, 2014

10 commits


15 Sep, 2014

2 commits


12 Sep, 2014

11 commits