08 Oct, 2016

3 commits

  • Pull ARM SoC late DT updates from Arnd Bergmann:
    "These updates have been kept in a separate branch mostly because they
    rely on updates to the respective clk drivers to keep the shared
    header files in sync.

    - The Renesas r8a7796 (R-Car M3-W) platform gets added, this is an
    automotive SoC similar to the ⅹ8a7795 chip we already support, but
    the dts changes rely on a clock driver change that has been merged
    for v4.9 through the clk tree.

    - The Amlogic meson-gxbb (S905) platform gains support for a few
    drivers merged through our tree, in particular the network and usb
    driver changes are required and included here, and also the clk
    tree changes.

    - The Allwinner platforms have seen a large-scale change to their clk
    drivers and the dts file updates must come after that. This
    includes the newly added Nextthing GR8 platform, which is derived
    from sun5i/A13.

    - Some integrator (arm32) changes rely on clk driver changes.

    - A single patch for lpc32xx has no such dependency but wasn't added
    until just before the merge window"

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (99 commits)
    ARM: dts: lpc32xx: add device node for IRAM on-chip memory
    ARM: dts: sun8i: Add accelerometer to polaroid-mid2407pxe03
    ARM: dts: sun8i: enable UART1 for iNet D978 Rev2 board
    ARM: dts: sun8i: add pinmux for UART1 at PG
    dts: sun8i-h3: add I2C0-2 peripherals to H3 SOC
    dts: sun8i-h3: add pinmux definitions for I2C0-2
    dts: sun8i-h3: associate exposed UARTs on Orange Pi Boards
    dts: sun8i-h3: split off RTS/CTS for UART1 in seperate pinmux
    dts: sun8i-h3: add pinmux definitions for UART2-3
    ARM: dts: sun9i: a80-optimus: Disable EHCI1
    ARM: dts: sun9i: cubieboard4: Add AXP806 PMIC device node and regulators
    ARM: dts: sun9i: a80-optimus: Add AXP806 PMIC device node and regulators
    ARM: dts: sun9i: cubieboard4: Declare AXP809 SW regulator as unused
    ARM: dts: sun9i: a80-optimus: Declare AXP809 SW regulator as unused
    ARM: dts: sun8i: Add touchscreen node for sun8i-a33-ga10h
    ARM: dts: sun8i: Add touchscreen node for sun8i-a23-polaroid-mid2809pxe04
    ARM: dts: sun8i: Add touchscreen node for sun8i-a23-polaroid-mid2407pxe03
    ARM: dts: sun8i: Add touchscreen node for sun8i-a23-inet86dz
    ARM: dts: sun8i: Add touchscreen node for sun8i-a23-gt90h
    ARM64: dts: meson-gxbb-vega-s95: Enable USB Nodes
    ...

    Linus Torvalds
     
  • Pull ARM SoC driver updates from Arnd Bergmann:
    "Driver updates for ARM SoCs, including a couple of newly added
    drivers:

    - The Qualcomm external bus interface 2 (EBI2), used in some of their
    mobile phone chips for connecting flash memory, LCD displays or
    other peripherals

    - Secure monitor firmware for Amlogic SoCs, and an NVMEM driver for
    the EFUSE based on that firmware interface.

    - Perf support for the AppliedMicro X-Gene performance monitor unit

    - Reset driver for STMicroelectronics STM32

    - Reset driver for SocioNext UniPhier SoCs

    Aside from these, there are minor updates to SoC-specific bus,
    clocksource, firmware, pinctrl, reset, rtc and pmic drivers"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (50 commits)
    bus: qcom-ebi2: depend on HAS_IOMEM
    pinctrl: mvebu: orion5x: Generalise mv88f5181l support for 88f5181
    clk: mvebu: Add clk support for the orion5x SoC mv88f5181
    dt-bindings: EXYNOS: Add Exynos5433 PMU compatible
    clocksource: exynos_mct: Add the support for ARM64
    perf: xgene: Add APM X-Gene SoC Performance Monitoring Unit driver
    Documentation: Add documentation for APM X-Gene SoC PMU DTS binding
    MAINTAINERS: Add entry for APM X-Gene SoC PMU driver
    bus: qcom: add EBI2 driver
    bus: qcom: add EBI2 device tree bindings
    rtc: rtc-pm8xxx: Add support for pm8018 rtc
    nvmem: amlogic: Add Amlogic Meson EFUSE driver
    firmware: Amlogic: Add secure monitor driver
    soc: qcom: smd: Reset rx tail rather than tx
    memory: atmel-sdramc: fix a possible NULL dereference
    reset: hi6220: allow to compile test driver on other architectures
    reset: zynq: add driver Kconfig option
    reset: sunxi: add driver Kconfig option
    reset: stm32: add driver Kconfig option
    reset: socfpga: add driver Kconfig option
    ...

    Linus Torvalds
     
  • Pull ARM SoC cleanups from Arnd Bergmann:
    "The cleanups for v4.9 are a little larger that usual, but thankfully
    that is almost exclusively due to removing a significant number of
    files that have become obsolete after the still ongoing conversion of
    old board files to devicetree.

    - for mach-omap2, which is still the largest platform in arch/arm/,
    the conversion to DT is finally complete after the Nokia N900 is
    now fully supported there, along with the omap3 LDP, and we can
    remove those two board files. If no regressions are found, another
    large cleanup for the platform will happen as a follow-up, removing
    dead code and restructuring the platform based on being DT-only.

    - In mach-imx, similar work is ongoing, but has not come that far.
    This time, we remove the obsolete board file for the i.MX1
    generation, which like i.MX25, i.MX5, i.MX6, and i.MX7 is now
    DT-only. The remaining board files are for i.MX2 and i.MX3 machines
    based on old ARM926 or ARM1136 cores that should work with DT in
    principle.

    - realview has just been converted from board files to DT, and a lot
    of code gets removed in the process. This is the last
    ARM/Keil/Versatile derived platform that was still using board
    files, the other ones being integrator, versatile and vexpress. We
    can probably merge the remaining code into a single directory in
    the near future.

    - clps711x had completed the conversion in v4.8, but we accidentally
    left the files in place that should have been deleted then"

    * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (21 commits)
    ARM: select PCI_DOMAINS config from ARCH_MULTIPLATFORM
    ARM: stop *MIGHT_HAVE_PCI* config from being selected redundantly
    ARM: imx: (trivial) fix typo and grammar
    ARM: clps711x: remove extraneous files
    ARM: imx: use IS_ENABLED() instead of checking for built-in or module
    ARM: OMAP2+: use IS_ENABLED() instead of checking for built-in or module
    ARM: OMAP1: use IS_ENABLED() instead of checking for built-in or module
    ARM: imx: remove platform-mxc_rnga
    ARM: realview: imply device tree boot
    ARM: realview: no need to select SMP_ON_UP explicitly
    ARM: realview: delete the RealView board files
    ARM: imx: no need to select SMP_ON_UP explicitly
    ARM: i.MX: Move SOC_IMX1 into 'Device tree only'
    ARM: i.MX: Remove i.MX1 non-DT support
    ARM: i.MX: Remove i.MX1 Synertronixx SCB9328 board support
    ARM: i.MX: Remove i.MX1 Armadeus APF9328 board support
    ARM: mxs: remove obsolete startup code for TX28
    ARM: i.MX31 iomux: remove duplicates with alternate name
    ARM: i.MX31 iomux: remove plain duplicates
    ARM: OMAP2+: Drop legacy board file for LDP
    ...

    Linus Torvalds
     

24 Sep, 2016

5 commits

  • This patch adds clock support to Loongson1C SoC.

    Signed-off-by: Yang Ling
    Acked-by: Keguang Zhang
    Signed-off-by: Stephen Boyd

    Yang Ling
     
  • Make use of GENMASK instead of open coding the equivalent operation,
    and update the PLL formula.

    Signed-off-by: Kelvin Cheung
    Signed-off-by: Stephen Boyd

    Kelvin Cheung
     
  • This patch updates some clock names of Loongson1B,
    and adds AC97, DMA and NAND clock.

    Signed-off-by: Kelvin Cheung
    Signed-off-by: Stephen Boyd

    Kelvin Cheung
     
  • Factor out the common functions into loongson1/clk.c
    to support both Loongson1B and Loongson1C. And, put
    the rest into loongson1/clk-loongson1b.c.

    Signed-off-by: Kelvin Cheung
    Signed-off-by: Stephen Boyd

    Kelvin Cheung
     
  • Clock driver should be registered with an earlier initcall than
    module_init which is used by most of client device drivers. Otherwise,
    probing of these client drivers will likely be deferred due to that
    calls into clk API will return -EPROBE_DEFER.

    Deferred probing is not a problem for most subsystems, but could bring
    some side effect for particular subsystem, like display. On ZX296718
    platform, we get Linux logo and boot log lost from display device, just
    because the DRM/KMS driver gets -EPROBE_DEFER from devm_clk_get() call.

    Let's use core_initcall (qcom and a few other clk drivers use that) for
    driver registration to avoid those unnecessary -EPROBE_DEFER and get rid
    of the side effect with ZX296718 display system.

    Signed-off-by: Shawn Guo
    Signed-off-by: Stephen Boyd

    Shawn Guo
     

23 Sep, 2016

2 commits

  • Original commit, which added support for Armada CP110 system controller
    used global variables for storing all clock information. It worked
    fine for Armada 7k SoC, with single CP110 block. After dual-CP110 Armada 8k
    was introduced, the data got overwritten and corrupted.

    This patch fixes the issue by allocating resources dynamically in the
    driver probe and storing it as platform drvdata.

    Fixes: d3da3eaef7f4 ("clk: mvebu: new driver for Armada CP110 system ...")
    Signed-off-by: Marcin Wojtas
    Reviewed-by: Thomas Petazzoni
    CC:
    Signed-off-by: Stephen Boyd

    Marcin Wojtas
     
  • Armada CP110 system controller comprises its own routine responsble
    for registering gate clocks. Among others 'flags' field in
    struct clk_init_data was not set, using a random values, which
    may cause an unpredicted behavior.

    This patch fixes the problem by resetting all fields of clk_init_data
    before assigning values for all gated clocks of Armada 7k/8k SoCs family.

    Fixes: d3da3eaef7f4 ("clk: mvebu: new driver for Armada CP110 system ...")
    Signed-off-by: Marcin Wojtas
    CC:
    Signed-off-by: Stephen Boyd

    Marcin Wojtas
     

22 Sep, 2016

1 commit


21 Sep, 2016

9 commits


19 Sep, 2016

1 commit

  • …hilman/linux-amlogic into next/late

    Pull "Amlogic driver updates for v4.9, 2nd round" from Kevin Hilman:

    - media: update IR support for newer SoCs
    - firmware: add secure monitor driver
    - net: new stmmac glue driver
    - usb: udd DWC2 support for meson-gxbb
    - clocks: expose more clock IDs for use by DT
    - DT binding updates

    * tag 'amlogic-drivers-2' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: (21 commits)
    clk: gxbb: expose i2c clocks
    clk: gxbb: expose USB clocks
    clk: gxbb: expose spifc clock
    clk: gxbb: expose MPLL2 clock for use by DT
    Documentation: dt-bindings: Add documentation for the Meson USB2 PHYs
    usb: dwc2: add support for Meson8b and GXBB SoCs
    net: stmmac: update the module description of the dwmac-meson driver
    net: stmmac: add a glue driver for the Amlogic Meson 8b / GXBB DWMAC
    stmmac: introduce get_stmmac_bsp_priv() helper
    net: dt-bindings: Document the new Meson8b and GXBB DWMAC bindings
    clk: meson-gxbb: Export PWM related clocks for DT
    meson: clk: Add support for clock gates
    gxbb: clk: Adjust MESON_GATE macro to be shared with meson8b
    clk: meson: Copy meson8b CLKID defines to private header file
    meson: clk: Rename register names according to Amlogic datasheet
    meson: clk: Move register definitions to meson8b.h
    clk: meson: Rename meson8b-clkc.c to reflect gxbb naming convention
    nvmem: amlogic: Add Amlogic Meson EFUSE driver
    firmware: Amlogic: Add secure monitor driver
    media: rc: meson-ir: Add support for newer versions of the IR decoder
    ...

    Arnd Bergmann
     

17 Sep, 2016

15 commits


15 Sep, 2016

4 commits

  • Now that we have clk_hw based provider APIs to register clks, we
    can get rid of struct clk pointers in this driver, allowing us to
    move closer to a clear split of consumer and provider clk APIs.

    Signed-off-by: Stephen Boyd
    Acked-by: Alexandre Belloni
    Tested-by: Alexandre Belloni
    Acked-by: Boris Brezillon
    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Now that we have clk_hw based provider APIs to register clks, we
    can get rid of struct clk pointers while registering clks in
    these drivers, allowing us to move closer to a clear split of
    consumer and provider clk APIs.

    Cc: Eric Anholt
    Cc: Martin Sperl
    Signed-off-by: Stephen Boyd

    Stephen Boyd
     
  • Make the clocks visible options that can be selected by anyone. This
    avoids the problems of:
    1) Select is a reverse dependency and is hard for people to understand
    and can sometimes be a pain to track down
    2) Build coverage goes down because configs are hidden
    3) Code bloat

    Patch suggested by Stephen Boyd

    Signed-off-by: Jon Mason
    Signed-off-by: Stephen Boyd

    Jon Mason
     
  • Add X-Gene PMD clock support.

    PMD clock is implemented for a single register field.
    Output rate = parent_rate * (denominator - scale) / denominator
    with
    - denominator = bitmask of register field + 1
    - scale = values of register field

    For example, for bitmask is 0x7, denominator will be 8 and scale
    will be computed and programmed accordingly.

    Signed-off-by: Hoan Tran
    Signed-off-by: Stephen Boyd

    Hoan Tran