1. 21 May, 2014 1 commit
    • Olof Johansson's avatar
      Merge tag 'vexpress/updates-for-3.16' of... · 486ad2ed
      Olof Johansson authored
      Merge tag 'vexpress/updates-for-3.16' of git://git.linaro.org/people/pawel.moll/linux into next/cleanup
      
      Merge "ARM Versatile Express updates for 3.16" from Pawel Moll:
      
      This series reworks VE's platform configuration infrastructure by:
      
      - making it possible to instantiate selected devices from the
        Device Tree, prior to massive population,
      - converting custom "func" API into standard "regmap",
      - splitting the existing MFD driver into smaller ones and placing
        them into relevant directories.
      
      The common clock framework driver can now be selected individually
      (mostly for arm64 sake, where some of them are not used at all).
      
      It also simplifies the machine code, by:
      
      - moving the shed clock info clocksource driver,
      - simplifying SMP operations to base them entirely of the DT data,
      - moving platform ID checks into relevant driver.
      
      * tag 'vexpress/updates-for-3.16' of git://git.linaro.org/people/pawel.moll/linux:
        ARM: vexpress: move HBI check to sysreg driver
        ARM: vexpress: Simplify SMP operations for DT-powered system
        ARM: vexpress: remove redundant vexpress_dt_cpus_num to get cpu count
        clocksource: Sched clock source for Versatile Express
        clk: versatile: Split config options for sp810 and vexpress_osc
        mfd: vexpress: Define the device as MFD cells
        mfd: syscon: Add platform data with a regmap config name
        mfd: vexpress: Convert custom func API to regmap
        of: Keep track of populated platform devices
        + Linux 3.15-rc5
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      486ad2ed
  2. 20 May, 2014 1 commit
  3. 15 May, 2014 9 commits
    • Pawel Moll's avatar
      ARM: vexpress: move HBI check to sysreg driver · 6b2c31c7
      Pawel Moll authored
      The last reason for static memory mapping is the HBI (board
      identification number) check early in the machine code.
      
      Moving the check to the sysreg driver makes it possible to
      completely remove the early mapping and init functions.
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      Acked-by: default avatarLee Jones <lee.jones@linaro.org>
      6b2c31c7
    • Pawel Moll's avatar
      ARM: vexpress: Simplify SMP operations for DT-powered system · d2606f81
      Pawel Moll authored
      As all cores must be properly described in the Device Tree,
      there is no point in getting their numbers from SCU on
      A5/A9 platforms. This significantly simplifies the code,
      removing the need for flat-tree scanning and early static
      mapping.
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      d2606f81
    • Sudeep KarkadaNagesha's avatar
      ARM: vexpress: remove redundant vexpress_dt_cpus_num to get cpu count · dcdea629
      Sudeep KarkadaNagesha authored
      arm_dt_init_cpu_maps parses the device tree, validates and sets the
      cpu_possible_mask appropriately. It is unnecessary to do another DT
      parse to get the number of cpus, use num_possible_cpus instead.
      
      This patch also removes setting cpu_present_mask as platforms should
      only re-initialize it in smp_prepare_cpus() if present != possible.
      Signed-off-by: default avatarSudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      dcdea629
    • Pawel Moll's avatar
      clocksource: Sched clock source for Versatile Express · 220e2a8d
      Pawel Moll authored
      This patch adds a trival sched clock source using free
      running, 24MHz clocked counter present in the ARM Ltd.
      reference platforms (Versatile, RealView, Versatile
      Express) System Registers block.
      
      This code replaces the call in the VE machine code.
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      220e2a8d
    • Pawel Moll's avatar
      clk: versatile: Split config options for sp810 and vexpress_osc · 5ee2b877
      Pawel Moll authored
      Move the Kconfig entry for Versatile (& Express) clock drivers
      into a separate file and add individual options for sp810
      and vexpress_osc drivers, as they are optional in some
      configurations and may have separate dependencies.
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      Acked-by: default avatarMike Turquette <mturquette@linaro.org>
      5ee2b877
    • Pawel Moll's avatar
      mfd: vexpress: Define the device as MFD cells · 974cc7b9
      Pawel Moll authored
      This patch - finally, after over 6 months! :-( - addresses
      Samuel's request to split the vexpress-sysreg driver into
      smaller portions and define the device in a form of MFD
      cells:
      
      * LEDs code has been completely removed and replaced with
        "gpio-leds" nodes in the tree (referencing dedicated
        GPIO subnodes in sysreg - bindings documentation updated);
        this also better fits the reality as some variants of the
        motherboard don't have all the LEDs populated
      
      * syscfg bridge code has been extracted into a separate
        driver (placed in drivers/misc for no better place)
      
      * all the ID & MISC registers are defined as sysconf
        making them available for other drivers should they need
        to use them (and also to the user via /sys/kernel/debug/regmap
        which can be helpful in platform debugging)
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      Acked-by: default avatarLee Jones <lee.jones@linaro.org>
      974cc7b9
    • Pawel Moll's avatar
      mfd: syscon: Add platform data with a regmap config name · 29f9b6cf
      Pawel Moll authored
      Define syscon platform data structure that can be used
      to define a regmap config name. This is particularly useful
      in the regmap debugfs when there is more than one syscon
      device registered, to distinguish the register blocks.
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      Acked-by: default avatarLee Jones <lee.jones@linaro.org>
      29f9b6cf
    • Pawel Moll's avatar
      mfd: vexpress: Convert custom func API to regmap · 3b9334ac
      Pawel Moll authored
      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: default avatarPawel Moll <pawel.moll@arm.com>
      Acked-by: default avatarMark Brown <broonie@linaro.org>
      Acked-by: default avatarLee Jones <lee.jones@linaro.org>
      Acked-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Acked-by: default avatarMike Turquette <mturquette@linaro.org>
      3b9334ac
    • Pawel Moll's avatar
      of: Keep track of populated platform devices · c6e126de
      Pawel Moll authored
      In "Device Tree powered" systems, platform devices are usually massively
      populated with of_platform_populate() call, executed at some level of
      initcalls, either by generic architecture or by platform-specific code.
      
      There are situations though where certain devices must be created (and
      bound with drivers) before all the others. This presents a challenge,
      as devices created explicitly would be created again by
      of_platform_populate().
      
      This patch tries to solve that issue in a generic way, adding a
      "populated" flag for a DT node description. Subsequent
      of_platform_populate() will skip such nodes (and its children) in
      a similar way to the non-available ones.
      
      This patch also adds of_platform_depopulate() as an operation
      complementary to the _populate() one. It removes a platform or an amba
      device populated from the Device Tree, together with its all children
      (leaving, however, devices without associated of_node untouched)
      clearing the "populated" flag on the way.
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Acked-by: default avatarGrant Likely <grant.likely@linaro.org>
      c6e126de
  4. 12 May, 2014 4 commits
    • Zhiwu Song's avatar
      clocksource:sirf: remove the hardcode for the clk of timers · c7cff54d
      Zhiwu Song authored
      Nobody want to know the connection between io clk and timer clk,
      so exposing this information to timer module is not reasonable.
      this patch moves to define the timers' clk in dt.
      Signed-off-by: default avatarZhiwu Song <Zhiwu.Song@csr.com>
      Signed-off-by: default avatarBarry Song <Baohua.Song@csr.com>
      c7cff54d
    • Bin Shi's avatar
      irqchip: sirf: fix one minor checkpatch issue · 7caf6852
      Bin Shi authored
      fix "line line over 80 characters" for the below:
      static int __init sirfsoc_irq_init(struct device_node *np, struct device_node *parent)
      
      the users of the codes - key customers really care about that.
      Signed-off-by: default avatarBin Shi <Bin.Shi@csr.com>
      Signed-off-by: default avatarBarry Song <Baohua.Song@csr.com>
      7caf6852
    • Bin Shi's avatar
      clocksource: prima2: fix some minor checkpatch issues · 4c1ad709
      Bin Shi authored
      Fix the "line over 80 characters". users of the codes - key customers
      really care about that.
      
      WARNING: line over 80 characters
      64: FILE: timer-prima2.c:64:
      +       WARN_ON(!(readl_relaxed(sirfsoc_timer_base + SIRFSOC_TIMER_STATUS) & BIT(0)));
      
      WARNING: line over 80 characters
      80: FILE: timer-prima2.c:80:
      +       writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base + SIRFSOC_TIMER_LATCH);
      
      WARNING: line over 80 characters
      82: FILE: timer-prima2.c:82:
      +       cycles = (cycles << 32) | readl_relaxed(sirfsoc_timer_base + SIRFSOC_TIMER_LATCHED_LO);
      
      WARNING: line over 80 characters
      92: FILE: timer-prima2.c:92:
      +       writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base + SIRFSOC_TIMER_LATCH);
      
      WARNING: line over 80 characters
      96: FILE: timer-prima2.c:96:
      +       writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base + SIRFSOC_TIMER_LATCH);
      
      WARNING: line over 80 characters
      111: FILE: timer-prima2.c:111:
      +               writel_relaxed(val | BIT(0), sirfsoc_timer_base + SIRFSOC_TIMER_INT_EN);
      
      WARNING: line over 80 characters
      114: FILE: timer-prima2.c:114:
      +               writel_relaxed(val & ~BIT(0), sirfsoc_timer_base + SIRFSOC_TIMER_INT_EN);
      
      WARNING: line over 80 characters
      126: FILE: timer-prima2.c:126:
      +       writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base + SIRFSOC_TIMER_LATCH);
      
      WARNING: line over 80 characters
      129: FILE: timer-prima2.c:129:
      +               sirfsoc_timer_reg_val[i] = readl_relaxed(sirfsoc_timer_base + sirfsoc_timer_reg_list[i]);
      
      WARNING: line over 80 characters
      137: FILE: timer-prima2.c:137:
      +               writel_relaxed(sirfsoc_timer_reg_val[i], sirfsoc_timer_base + sirfsoc_timer_reg_list[i]);
      
      WARNING: line over 80 characters
      139: FILE: timer-prima2.c:139:
      +       writel_relaxed(sirfsoc_timer_reg_val[SIRFSOC_TIMER_REG_CNT - 2], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_LO);
      
      WARNING: line over 80 characters
      140: FILE: timer-prima2.c:140:
      +       writel_relaxed(sirfsoc_timer_reg_val[SIRFSOC_TIMER_REG_CNT - 1], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_HI);
      
      WARNING: line over 80 characters
      216: FILE: timer-prima2.c:216:
      +CLOCKSOURCE_OF_DECLARE(sirfsoc_prima2_timer, "sirf,prima2-tick", sirfsoc_prima2_timer_init);
      
      total: 0 errors, 13 warnings, 216 lines checked
      
      timer-prima2.c has style problems, please review.
      
      If any of these errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
      Signed-off-by: default avatarBin Shi <Bin.Shi@csr.com>
      Signed-off-by: default avatarBarry Song <Baohua.Song@csr.com>
      4c1ad709
    • Xianglong Du's avatar
      ARM: prima2: rstc: fix some minor checkpatch issues · a2a25683
      Xianglong Du authored
      this patch fixes the below minor issues:
      
      WARNING: line over 80 characters
      39: FILE: arch/arm/mach-prima2/rstc.c:39:
      +                * Writing 1 to this bit resets corresponding block. Writing 0 to this
      
      WARNING: line over 80 characters
      41: FILE: arch/arm/mach-prima2/rstc.c:41:
      +                * datasheet doesn't require explicit delay between the set and clear
      
      WARNING: line over 80 characters
      44: FILE: arch/arm/mach-prima2/rstc.c:44:
      +               writel(readl(sirfsoc_rstc_base + (reset_bit / 32) * 4) | (1 << reset_bit),
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      46: FILE: arch/arm/mach-prima2/rstc.c:46:
      +               msleep(10);
      
      WARNING: line over 80 characters
      47: FILE: arch/arm/mach-prima2/rstc.c:47:
      +               writel(readl(sirfsoc_rstc_base + (reset_bit / 32) * 4) & ~(1 << reset_bit),
      
      WARNING: line over 80 characters
      52: FILE: arch/arm/mach-prima2/rstc.c:52:
      +                * Writing 1 to SET register resets corresponding block. Writing 1 to CLEAR
      
      WARNING: line over 80 characters
      54: FILE: arch/arm/mach-prima2/rstc.c:54:
      +                * datasheet doesn't require explicit delay between the set and clear
      
      WARNING: line over 80 characters
      57: FILE: arch/arm/mach-prima2/rstc.c:57:
      +               writel(1 << reset_bit, sirfsoc_rstc_base + (reset_bit / 32) * 8);
      
      WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
      58: FILE: arch/arm/mach-prima2/rstc.c:58:
      +               msleep(10);
      
      WARNING: line over 80 characters
      59: FILE: arch/arm/mach-prima2/rstc.c:59:
      +               writel(1 << reset_bit, sirfsoc_rstc_base + (reset_bit / 32) * 8 + 4);
      
      total: 0 errors, 10 warnings, 120 lines checked
      Signed-off-by: default avatarXianglong Du <Xianglong.Du@csr.com>
      Signed-off-by: default avatarBarry Song <Baohua.Song@csr.com>
      a2a25683
  5. 11 May, 2014 1 commit
  6. 09 May, 2014 6 commits
  7. 08 May, 2014 9 commits
  8. 07 May, 2014 6 commits
  9. 06 May, 2014 3 commits