24 Jul, 2014

2 commits

  • The CCN driver makes no sense without PERF_EVENTS, and trying to
    build it when that option is disabled results in compile errors,
    so it's best to just add a strong Kconfig dependency.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • Driver providing perf backend for ARM Cache Coherent Network
    interconnect. Supports counting all hardware events and crosspoint
    watchpoints.

    Currently works with CCN-504 only, although there should be
    no changes required for CCN-508 (just impossible to test it now).

    Signed-off-by: Pawel Moll
    Signed-off-by: Arnd Bergmann

    Pawel Moll
     

17 Jun, 2014

1 commit

  • The arm-cci code uses device tree helpers for initialization
    that don't work on kernels built without CONFIG_OF. Further,
    it contains an inline assembly in cci_enable_port_for_self()
    that uses ARMv7 instructions and fails to build when targetting
    other ARM instruction set versions.

    This works around both issues by limiting the scope of the
    Kconfig symbol to platforms that can actually build this driver
    cleanly.

    Signed-off-by: Arnd Bergmann
    Acked-by: Lorenzo Pieralisi
    Cc: Shawn Guo

    Arnd Bergmann
     

03 Jun, 2014

1 commit

  • Pull ARM SoC driver changes from Olof Johansson:
    "SoC-near driver changes that we're merging through our tree. Mostly
    because they depend on other changes we have staged, but in some cases
    because the driver maintainers preferred that we did it this way.

    This contains a largeish cleanup series of the omap_l3_noc bus driver,
    cpuidle rework for Exynos, some reset driver conversions and a long
    branch of TI EDMA fixes and cleanups, with more to come next release.

    The TI EDMA cleanups is a shared branch with the dmaengine tree, with
    a handful of Davinci-specific fixes on top.

    After discussion at last year's KS (and some more on the mailing
    lists), we are here adding a drivers/soc directory. The purpose of
    this is to keep per-vendor shared code that's needed by different
    drivers but that doesn't fit into the MFD (nor drivers/platform)
    model. We expect to keep merging contents for this hierarchy through
    arm-soc so we can keep an eye on what the vendors keep adding here and
    not making it a free-for-all to shove in crazy stuff"

    * tag 'drivers-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (101 commits)
    cpufreq: exynos: Fix driver compilation with ARCH_MULTIPLATFORM
    tty: serial: msm: Remove direct access to GSBI
    power: reset: keystone-reset: introduce keystone reset driver
    Documentation: dt: add bindings for keystone pll control controller
    Documentation: dt: add bindings for keystone reset driver
    soc: qcom: fix of_device_id table
    ARM: EXYNOS: Fix kernel panic when unplugging CPU1 on exynos
    ARM: EXYNOS: Move the driver to drivers/cpuidle directory
    ARM: EXYNOS: Cleanup all unneeded headers from cpuidle.c
    ARM: EXYNOS: Pass the AFTR callback to the platform_data
    ARM: EXYNOS: Move S5P_CHECK_SLEEP into pm.c
    ARM: EXYNOS: Move the power sequence call in the cpu_pm notifier
    ARM: EXYNOS: Move the AFTR state function into pm.c
    ARM: EXYNOS: Encapsulate the AFTR code into a function
    ARM: EXYNOS: Disable cpuidle for exynos5440
    ARM: EXYNOS: Encapsulate boot vector code into a function for cpuidle
    ARM: EXYNOS: Pass wakeup mask parameter to function for cpuidle
    ARM: EXYNOS: Remove ifdef for scu_enable in pm
    ARM: EXYNOS: Move scu_enable in the cpu_pm notifier
    ARM: EXYNOS: Use the cpu_pm notifier for pm
    ...

    Linus Torvalds
     

27 May, 2014

1 commit

  • The versatile express changes for 3.16 introduced a number of
    build regressions for randconfig kernels by not tracking dependencies
    between the components right.

    This patch tries to rectify that:

    * the mach-vexpress code cannot link without the syscfg driver,
    which in turn needs MFD_VEXPRESS_SYSREG
    * various drivers call devm_regmap_init_vexpress_config(), which
    has to be exported so it can be used by loadable modules
    * the configuration bus uses OF DT helper functions that are not
    available to platforms disable CONFIG_OF
    * The sysreg driver exports GPIOs through gpiolib, which can
    be disabled on some platforms.
    * The clocksource code cannot be built on platforms that don't
    use modern timekeeping but rely on gettimeoffset.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

24 May, 2014

1 commit

  • This patch adds support for the Broadcom GISB arbiter bus timeout/error
    handler. GISB is a proprietary bus used by Broadcom Set Top Box
    System-on-a-chip devices (BCM7xxx) which allows multiple masters and
    clients to be interfaced with each other.

    The bus arbiter offers support for generating two interrupts towards the
    host CPU, thus allowing us to "catch" clock gated masters, or masters
    being volontarily blocked for powersaving purposes, or do general system
    troubleshooting.

    We also register a hook with the ARM fault exception handling to allow
    printing a more informative message than "imprecise external abort at
    0x00000000" for instance.

    Signed-off-by: Florian Fainelli
    Signed-off-by: Arnd Bergmann

    Florian Fainelli
     

16 May, 2014

1 commit

  • Components of the Versatile Express platform (configuration
    microcontrollers on motherboard and daughterboards in particular)
    talk to each other over a custom configuration bus. They
    provide miscellaneous functions (from clock generator control
    to energy sensors) which are represented as platform devices
    (and Device Tree nodes). The transactions on the bus can
    be generated by different "bridges" in the system, some
    of which are universal for the whole platform (for the price
    of high transfer latencies), others restricted to a subsystem
    (but much faster).

    Until now drivers for such functions were using custom "func"
    API, which is being replaced in this patch by regmap calls.
    This required:

    * a rework (and move to drivers/bus directory, as suggested
    by Samuel and Arnd) of the config bus core, which is much
    simpler now and uses device model infrastructure (class)
    to keep track of the bridges; non-DT case (soon to be
    retired anyway) is simply covered by a special device
    registration function

    * the new config-bus driver also takes over device population,
    so there is no need for special matching table for
    of_platform_populate nor "simple-bus" hack in the arm64
    model dtsi file (relevant bindings documentation has
    been updated); this allows all the vexpress devices
    fit into normal device model, making it possible
    to remove plenty of early inits and other hacks in
    the near future

    * adaptation of the syscfg bridge implementation in the
    sysreg driver, again making it much simpler; there is
    a special case of the "energy" function spanning two
    registers, where they should be both defined in the tree
    now, but backward compatibility is maintained in the code

    * modification of the relevant drivers:

    * hwmon - just a straight-forward API change
    * power/reset driver - API change
    * regulator - API change plus error handling
    simplification
    * osc clock driver - this one required larger rework
    in order to turn in into a standard platform driver

    Signed-off-by: Pawel Moll
    Acked-by: Mark Brown
    Acked-by: Lee Jones
    Acked-by: Guenter Roeck
    Acked-by: Mike Turquette

    Pawel Moll
     

16 Aug, 2013

1 commit


03 Jul, 2013

1 commit

  • Pull ARM SoC device tree changes from Arnd Bergmann:
    "These changes from 30 individual branches for the most part update
    device tree files, but there are also a few source code changes that
    have crept in this time, usually in order to atomically move over a
    driver from using hardcoded data to DT probing.

    A number of platforms change their DT files to use the C preprocessor,
    which is causing a bit of churn, but that is hopefully only this once"

    * tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (372 commits)
    ARM: at91: dt: rm9200ek: add spi support
    ARM: at91: dt: rm9200: add spi support
    ARM: at91/DT: at91sam9n12: add SPI DMA client infos
    ARM: at91/DT: sama5d3: add SPI DMA client infos
    ARM: at91/DT: fix SPI compatibility string
    ARM: Kirkwood: Fix the internal register ranges translation
    ARM: dts: bcm281xx: change comment to C89 style
    ARM: mmc: bcm281xx SDHCI driver (dt mods)
    ARM: nomadik: add the new clocks to the device tree
    clk: nomadik: implement the Nomadik clocks properly
    ARM: dts: omap5-uevm: Provide USB Host PHY clock frequency
    ARM: dts: omap4-panda: Fix DVI EDID reads
    ARM: dts: omap4-panda: Add USB Host support
    arm: mvebu: enable mini-PCIe connectors on Armada 370 RD
    ARM: shmobile: irqpin: add a DT property to enable masking on parent
    ARM: dts: AM43x EPOS EVM support
    ARM: dts: OMAP5: Add bandgap DT entry
    ARM: dts: AM33XX: Add pinmux configuration for CPSW to am335x EVM
    ARM: dts: AM33XX: Add pinmux configuration for CPSW to EVMsk
    ARM: dts: AM33XX: Add pinmux configuration for CPSW to beaglebone
    ...

    Linus Torvalds
     

17 Jun, 2013

1 commit

  • The WEIM(Wireless External Interface Module) works like a bus.
    You can attach many different devices on it, such as NOR, onenand.

    In the case of i.MX6q-sabreauto, the NOR is connected to WEIM.

    This patch also adds the devicetree binding document.
    The driver only works when the devicetree is enabled.

    Signed-off-by: Huang Shijie
    Acked-by: Sascha Hauer
    Signed-off-by: Shawn Guo

    Huang Shijie
     

30 May, 2013

1 commit

  • On ARM multi-cluster systems coherency between cores running on
    different clusters is managed by the cache-coherent interconnect (CCI).
    It allows broadcasting of TLB invalidates and memory barriers and it
    guarantees cache coherency at system level through snooping of slave
    interfaces connected to it.

    This patch enables the basic infrastructure required in Linux to handle and
    programme the CCI component.

    Non-local variables used by the CCI management functions called by power
    down function calls after disabling the cache must be flushed out to main
    memory in advance, otherwise incoherency of those values may occur if they
    are sitting in the cache of some other CPU when power down functions
    execute. Driver code ensures that relevant data structures are flushed
    from inner and outer caches after the driver probe is completed.

    CCI slave port resources are linked to set of CPUs through bus masters
    phandle properties that link the interface resources to masters node in
    the device tree.

    Documentation describing the CCI DT bindings is provided with the patch.

    Signed-off-by: Lorenzo Pieralisi
    Signed-off-by: Nicolas Pitre

    Lorenzo Pieralisi
     

29 Mar, 2013

1 commit

  • The Marvell EBU SoCs have a configurable physical address space
    layout: the physical ranges of memory used to address PCI(e)
    interfaces, NOR flashes, SRAM and various other types of memory are
    configurable by software, through a mechanism of so-called 'address
    decoding windows'.

    This new driver mvebu-mbus consolidates the existing code to address
    the configuration of these memory ranges, which is spread into
    mach-mvebu, mach-orion5x, mach-mv78xx0, mach-dove and mach-kirkwood.

    Following patches convert each Marvell EBU SoC family to use this
    driver, therefore removing the old code that was configuring the
    address decoding windows.

    It is worth mentioning that the MVEBU_MBUS Kconfig option is
    intentionally added as a blind option. The new driver implements and
    exports the mv_mbus_dram_info() function, which is used by various
    Marvell drivers throughout the tree to get access to window
    configuration parameters that they require. This function is also
    implemented in arch/arm/plat-orion/addr-map.c, which ultimately gets
    removed at the end of this patch series. So, in order to preserve
    bisectability, we want to ensure that *either* this new driver, *or*
    the legacy code in plat-orion/addr-map.c gets compiled in.

    By making MVEBU_MBUS a blind option, we are sure that only a platform
    that does 'select MVEBU_MBUS' will get this new driver compiled
    in. Therefore, throughout the next patches that convert the Marvell
    sub-architectures one after the other to this new driver, we add the
    'select MVEBU_MBUS' and also ensure to remove plat-orion/addr-map.c
    from the build for this specific sub-architecture. This ensures that
    bisectability is preserved.

    Ealier versions of this driver had a DT binding, but since those were
    not yet agreed upon, they were removed. The driver still uses
    of_device_id to find the SoC specific details according to the string
    passed to mvebu_mbus_init(). The plan is to re-introduce a proper DT
    binding as a followup set of patches.

    Signed-off-by: Thomas Petazzoni
    Acked-by: Arnd Bergmann
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     

17 Dec, 2012

1 commit

  • These devices are not available on other architectures, so
    let's limit them to omap.

    If the driver subsystem maintainers want to build test
    system wide changes without building for each target,
    it's easy to carry a test patch that just strips out the
    depends entries from Kconfig files.

    Signed-off-by: Tony Lindgren
    Signed-off-by: Linus Torvalds

    Tony Lindgren
     

19 Sep, 2012

1 commit


22 Aug, 2012

1 commit

  • Adds a new driver *omap-ocp2scp*. This driver takes the responsibility of
    creating all the devices that is connected to OCP2SCP. In the case of OMAP4,
    USB2PHY is connected to ocp2scp.

    This also includes device tree support for ocp2scp driver and
    the documentation with device tree binding information is updated.

    Acked-by: Felipe Balbi
    Acked-by: Arnd Bergmann
    Signed-off-by: Kishon Vijay Abraham I
    Signed-off-by: Arnd Bergmann

    Kishon Vijay Abraham I