07 Sep, 2019

1 commit

  • The ast2600 is a new BMC SoC from ASPEED. It contains many more clocks
    than the previous iterations, so support is broken out into it's own
    driver.

    Signed-off-by: Joel Stanley
    Link: https://lkml.kernel.org/r/20190825141848.17346-3-joel@jms.id.au
    [sboyd@kernel.org: Mark arrays const]
    Signed-off-by: Stephen Boyd

    Joel Stanley
     

28 Jun, 2019

1 commit

  • Adds a driver for the Si5341 and Si5340 chips. The driver does not fully
    support all features of these chips, but allows the chip to be used
    without any support from the "clockbuilder pro" software.

    If the chip is preprogrammed, that is, you bought one with some defaults
    burned in, or you programmed the NVM in some way, the driver will just
    take over the current settings and only change them on demand. Otherwise
    the input must be a fixed XTAL in its most basic configuration (no
    predividers, no feedback, etc.).

    The driver supports dynamic changes of multisynth, output dividers and
    enabling or powering down outputs and multisynths.

    Signed-off-by: Mike Looijmans
    [sboyd@kernel.org: Mark some things static, use BIT_ULL for big bits and
    ULL for big constants]
    Signed-off-by: Stephen Boyd

    Mike Looijmans
     

08 May, 2019

2 commits

  • …lk-spdx' into clk-next

    - Support for STM32F769
    - Rework AT91 sckc DT bindings
    - Fix slow RC oscillator issue on sama5d3
    - AT91 sam9x60 PMC support
    - SiFive FU540 PRCI and PLL support

    * clk-stm32f4:
    clk: stm32mp1: Add ddrperfm clock
    clk: stm32: Introduce clocks of STM32F769 board

    * clk-tegra:
    clk: tegra: divider: Mark Memory Controller clock as read-only
    clk: tegra: emc: Replace BUG() with WARN_ONCE()
    clk: tegra: emc: Fix EMC max-rate clamping
    clk: tegra: emc: Support multiple RAM codes
    clk: tegra: emc: Don't enable EMC clock manually
    clk: tegra124: Remove lock-enable bit from PLLM
    clk: tegra: Fix PLLM programming on Tegra124+ when PMC overrides divider
    clk: tegra: Don't enable already enabled PLLs

    * clk-at91:
    clk: at91: Mark struct clk_range as const
    clk: at91: add sam9x60 pmc driver
    dt-bindings: clk: at91: add bindings for SAM9X60 pmc
    clk: at91: add sam9x60 PLL driver
    clk: at91: master: Add sam9x60 support
    clk: at91: usb: Add sam9x60 support
    clk: at91: allow configuring generated PCR layout
    clk: at91: allow configuring peripheral PCR layout
    clk: at91: sckc: handle different RC startup time
    clk: at91: modernize sckc binding
    dt-bindings: clock: at91: new sckc bindings

    * clk-sifive-fu540:
    clk: sifive: add a driver for the SiFive FU540 PRCI IP block
    clk: analogbits: add Wide-Range PLL library
    dt-bindings: clk: add documentation for the SiFive PRCI driver

    * clk-spdx:
    clk: sunxi-ng: Use the correct style for SPDX License Identifier
    clk: sprd: Use the correct style for SPDX License Identifier
    clk: renesas: Use the correct style for SPDX License Identifier
    clk: qcom: Use the correct style for SPDX License Identifier
    clk: davinci: Use the correct style for SPDX License Identifier
    clk: actions: Use the correct style for SPDX License Identifier

    Stephen Boyd
     
  • …'clk-qoriq' into clk-next

    - Mark UFS clk as critical on Hi-Silicon hi3660 SoCs
    - Support for Cirrus Logic Lochnagar clks

    * clk-hisi:
    clk: hi3660: Mark clk_gate_ufs_subsys as critical

    * clk-lochnagar:
    clk: lochnagar: Add support for the Cirrus Logic Lochnagar
    clk: lochnagar: Add initial binding documentation

    * clk-allwinner:
    clk: sunxi-ng: sun5i: Export the MBUS clock
    clk: sunxi-ng: a83t: Add pll-video0 as parent of csi-mclk
    clk: sunxi-ng: h6: Allow video & vpu clocks to change parent rate
    clk: sunxi-ng: h6: Preset hdmi-cec clock parent
    clk: sunxi: Add Kconfig options
    clk: sunxi-ng: f1c100s: fix USB PHY gate bit offset
    clk: sunxi-ng: Allow DE clock to set parent rate

    * clk-rockchip:
    clk: rockchip: undo several noc and special clocks as critical on rk3288
    clk: rockchip: add a COMPOSITE_DIV_OFFSET clock-type
    clk: rockchip: Turn on "aclk_dmac1" for suspend on rk3288
    clk: rockchip: Limit use of USB PHY clock to USB on rk3288
    clk: rockchip: Fix video codec clocks on rk3288
    clk: rockchip: Make rkpwm a critical clock on rk3288
    clk: rockchip: fix wrong clock definitions for rk3328

    * clk-qoriq:
    clk: qoriq: increase array size of cmux_to_group
    dt-bindings: qoriq-clock: Add ls1028a chip compatible string
    clk: qoriq: Add ls1028a clock configuration
    clk: qoriq: add more PLL divider clocks support
    dt-bindings: qoriq-clock: add more PLL divider clocks support

    Stephen Boyd
     

04 May, 2019

2 commits

  • Add driver code for the SiFive FU540 PRCI IP block. This IP block
    handles reset and clock control for the SiFive FU540 device and
    implements SoC-level clock tree controls and dividers.

    Based on code written by Wesley Terpstra :
    https://github.com/riscv/riscv-linux/commit/999529edf517ed75b56659d456d221b2ee56bb60

    Boot and PLL rate change were tested on a SiFive HiFive Unleashed
    board.

    This version includes several changes requested by Stephen Boyd
    .

    Signed-off-by: Paul Walmsley
    Signed-off-by: Paul Walmsley
    Cc: Michael Turquette
    Cc: Stephen Boyd
    Cc: Albert Ou
    Cc: Wesley W. Terpstra
    Cc: Palmer Dabbelt
    Cc: Megan Wachs
    Cc: linux-riscv@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-clk@vger.kernel.org
    [sboyd@kernel.org: Fix some const and ARRAY_SIZE() issues, make makefile
    only descend if CLK_SIFIVE=y]
    Signed-off-by: Stephen Boyd

    Paul Walmsley
     
  • Add common library code for the Analog Bits Wide-Range PLL (WRPLL) IP
    block, as implemented in TSMC CLN28HPC.

    There is no bus interface or register target associated with this PLL.
    This library is intended to be used by drivers for IP blocks that
    expose registers connected to the PLL configuration and status
    signals.

    Based on code originally written by Wesley Terpstra
    :
    https://github.com/riscv/riscv-linux/commit/999529edf517ed75b56659d456d221b2ee56bb60

    This version incorporates several changes requested by Stephen
    Boyd .

    Signed-off-by: Paul Walmsley
    Signed-off-by: Paul Walmsley
    Cc: Wesley Terpstra
    Cc: Palmer Dabbelt
    Cc: Michael Turquette
    Cc: Stephen Boyd
    Cc: Megan Wachs
    Cc: linux-clk@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    [sboyd@kernel.org: Fix some const issues]
    Signed-off-by: Stephen Boyd

    Paul Walmsley
     

26 Apr, 2019

1 commit

  • The M10V of the Milbeaut SoCs has an on-chip controller that derive
    mostly clocks from a single external clock, using PLLs, dividers,
    multiplexers and gates. Since the PLLs have already been started and
    will not stop / restart, they are fixed factor. The gates will be added
    in later patch (all of the gates are off state now).

    Signed-off-by: Sugaya Taichi
    Signed-off-by: Stephen Boyd

    Sugaya Taichi
     

24 Apr, 2019

1 commit

  • Lochnagar is an evaluation and development board for Cirrus
    Logic Smart CODEC and Amp devices. It allows the connection of
    most Cirrus Logic devices on mini-cards, as well as allowing
    connection of various application processor systems to provide a
    full evaluation platform. This driver supports the board
    controller chip on the Lochnagar board.

    The Lochnagar can take several input clocks from the host system,
    provides several of its own clock sources, and provides extensive
    routing options for those clocks to be supplied to the attached
    CODEC/Amp device.

    Signed-off-by: Charles Keepax
    Signed-off-by: Stephen Boyd

    Charles Keepax
     

09 Mar, 2019

1 commit

  • …-meson' and 'clk-renesas' into clk-next

    - Add a {devm_}clk_get_optional() API
    - Add devm_clk_hw_register_clkdev() API to manage clkdev lookups

    * clk-optional:
    clk: Add (devm_)clk_get_optional() functions
    clk: Add comment about __of_clk_get_by_name() error values

    * clk-devm-clkdev-register:
    clk: clk-st: avoid clkdev lookup leak at remove
    clk: clk-max77686: Clean clkdev lookup leak and use devm
    clkdev: add managed clkdev lookup registration

    * clk-allwinner:
    clk: sunxi-ng: sun8i-a23: Enable PLL-MIPI LDOs when ungating it

    * clk-meson: (22 commits)
    clk: meson: meson8b: fix the naming of the APB clocks
    dt-bindings: clock: meson8b: add APB clock definition
    clk: meson: Add G12A AO Clock + Reset Controller
    dt-bindings: clk: add G12A AO Clock and Reset Bindings
    clk: meson: factorise meson64 peripheral clock controller drivers
    clk: meson: g12a: add peripheral clock controller
    dt-bindings: clk: meson: add g12a periph clock controller bindings
    clk: meson: pll: update driver for the g12a
    clk: meson: rework and clean drivers dependencies
    clk: meson: axg-audio does not require syscon
    clk: meson: use CONFIG_ARCH_MESON to enter meson clk directory
    clk: export some clk_hw function symbols for module drivers
    clk: meson: ao-clkc: claim clock controller input clocks from DT
    clk: meson: axg: claim clock controller input clock from DT
    clk: meson: gxbb: claim clock controller input clock from DT
    clk: meson: meson8b: add the GPU clock tree
    clk: meson: meson8b: use a separate clock table for Meson8
    clk: meson: axg-ao: add 32k generation subtree
    clk: meson: gxbb-ao: replace cec-32k with the dual divider
    clk: meson: add dual divider clock driver
    ...

    * clk-renesas:
    clk: renesas: r8a774a1: Fix LAST_DT_CORE_CLK
    clk: renesas: r8a774c0: Fix LAST_DT_CORE_CLK
    clk: renesas: r8a774c0: Add TMU clock
    clk: renesas: r8a77980: Add RPC clocks
    clk: renesas: rcar-gen3: Add RPC clocks
    clk: renesas: rcar-gen3: Add spinlock
    clk: renesas: rcar-gen3: Factor out cpg_reg_modify()
    clk: renesas: r8a774c0: Correct parent clock of DU
    clk: renesas: r8a774a1: Add missing CANFD clock
    clk: renesas: r8a774c0: Add missing CANFD clock

    Stephen Boyd
     

03 Feb, 2019

1 commit


10 Jan, 2019

1 commit

  • This patch adds a driver for Fixed MMIO clock.
    The driver reads a clock frequency value from a single 32-bit memory
    mapped register and registers it as a fixed rate clock.

    It can be enabled with COMMON_CLK_FIXED_MMIO Kconfig option.

    Signed-off-by: Jan Kotas
    [sboyd@kernel.org: Make of_fixed_mmio_clk_setup() static, use clk_hw
    based APIs]
    Signed-off-by: Stephen Boyd

    Jan Kotas
     

15 Dec, 2018

1 commit

  • …nd 'clk-imx8mq' into clk-next

    - NXP i.MX7ULP SoC clock support
    - Support for i.MX8QXP SoC clocks
    - Support for NXP i.MX8MQ clock controllers

    * clk-imx7ulp:
    clk: imx: add imx7ulp clk driver
    clk: imx: implement new clk_hw based APIs
    clk: imx: make mux parent strings const
    dt-bindings: clock: add imx7ulp clock binding doc
    clk: imx: add imx7ulp composite clk support
    clk: imx: add pfdv2 support
    clk: imx: add pllv4 support
    clk: fractional-divider: add CLK_FRAC_DIVIDER_ZERO_BASED flag support
    clk: imx: add gatable clock divider support

    * clk-imx6-fixes:
    clk: imx6q: handle ENET PLL bypass
    clk: imx6q: optionally get CCM inputs via standard clock handles
    clk: imx6q: reset exclusive gates on init

    * clk-imx-fixes:
    clk: imx6q: add DCICx clocks gate
    clk: imx6sl: ensure MMDC CH0 handshake is bypassed
    clk: imx7d: remove UART1 clock setting

    * clk-imx8qxp:
    clk: imx: add imx8qxp lpcg driver
    clk: imx: add lpcg clock support
    clk: imx: add imx8qxp clk driver
    clk: imx: add scu clock common part
    clk: imx: add configuration option for mmio clks
    dt-bindings: clock: add imx8qxp lpcg clock binding
    dt-bindings: clock: imx8qxp: add SCU clock IDs
    firmware: imx: add pm svc headfile
    dt-bindings: fsl: scu: update power domain binding
    firmware: imx: remove resource id enums
    dt-bindings: imx: add scu resource id headfile

    * clk-imx8mq:
    clk: imx: Make the i.MX8MQ CCM clock driver CLK_IMX8MQ dependant
    clk: imx: remove redundant initialization of ret to zero
    clk: imx: Add SCCG PLL type
    clk: imx: Add fractional PLL output clock
    clk: imx: Add clock driver for i.MX8MQ CCM
    clk: imx: Add imx composite clock
    dt-bindings: Add binding for i.MX8MQ CCM

    Stephen Boyd
     

14 Dec, 2018

1 commit

  • The patch introduces CONFIG_MXC_CLK option for legacy MMIO clocks,
    this is required to compile legacy MMIO clock conditionally when adding
    SCU based clocks for MX8 platforms later.

    Cc: Shawn Guo
    Cc: Sascha Hauer
    Cc: Fabio Estevam
    Cc: Stephen Boyd
    Cc: Michael Turquette
    Signed-off-by: Dong Aisheng
    Signed-off-by: Stephen Boyd

    Aisheng Dong
     

11 Dec, 2018

1 commit


01 Nov, 2018

1 commit

  • Pull clk updates from Stephen Boyd:
    "This time it looks like a quieter release cycle in the clk tree. I
    guess that's because of summer time holidays/vacations. The biggest
    change in the diffstat is in the Qualcomm clk driver, where they got
    support for CPUs and handful of SoCs. After that, the at91 driver got
    a major rewrite for newer DT bindings that should make things easier
    going forward and the TI code moved to a clockdomain based design.

    The long tail is mostly small driver updates for newer clks and some
    simpler SoC clock drivers such as the Hisilicon and imx support.

    In the core framework, we only have two small changes this time.

    One is a new clk API to get all clks for a device with the bulk clk
    APIs. This allows drivers that don't care about doing anything besides
    turning on all the clks to just clk_get() them all and turn them on.

    The other change is the beginning of a way to support save and restore
    of clk settings in the clk framework. TI is the only user right now,
    but we will want to expand upon this design in the future to support
    more save and restore of clk registers. At least this gets us started
    and works well enough for one SoC, but there's more work in the
    future.

    Core:
    - clk_bulk_get_all() API and friends to get all the clks for a device
    - Basic clk state save/restore hooks

    New Drivers:
    - Renesas RZ/A2 (R7S9210) SoC, including early clocks
    - Rensas RZ/G1N (R8A7744) and RZ/G2E (R8A774C0) SoCs
    - Rensas RZ/G2M (r8a774a1) SoC
    - Qualcomm Krait CPU clk support
    - Qualcomm QCS404 GCC support
    - Qualcomm SDM660 GCC support
    - Qualcomm SDM845 camera clock controller
    - Ingenic jz4725b CGU
    - Hisilicon 3670 SoC support
    - TI SCI clks on K3 SoCs
    - iMX6 MMDC clks
    - Reset Controller (RMU) support for Actions Semi Owl S900 and S700 SoCs

    Updates:
    - Rework at91 PMC clock driver for new DT bindings
    - Nvidia Tegra clk driver MBIST workaround fix
    - S2RAM support for Marvell mvebu periph clks
    - Use updated printk format for OF node names
    - Fix TI code to only search DT subnodes
    - Various static analysis finds
    - Tag various drivers with SPDX license tags
    - Support dynamic frequency switching (DFS) on qcom SDM845 GCC
    - Only use s2mps11 dt-binding defines instead of redefining them in the driver
    - Add some more missing clks to qcom MSM8996 GCC
    - Quad SPI clks on qcom SDM845
    - Add support for CMT timer clocks on R-Car V3H
    - Add support for SHDI and various timer clocks on R-Car V3M
    - Improve OSC and RCLK (watchdog) handling on R-Car Gen3 SoCs
    - Amlogic clk-pll driver improvements and updates
    - Amlogic axg audio controller system clocks
    - Register Amlogic meson8b clock controller early
    - Add support for SATA and Fine Display Processor (FDP) clocks on R-Car M3-N
    - Consolidation of system suspend related code in Exynos, S5P, S3C SoC clk drivers
    - Fixes for system suspend support on Exynos542x (Odroid boards) and Exynos5433 SoC
    - Remove obsoleted Exynos4212 ISP clock definitions
    - Migrated TI am3/4/5 and dra7 SoCs to clockdomain based design
    - TI RTC+DDR sleep mode support for clock save/restore
    - Allwinner A64 display engine support and fixes
    - Allwinner A83t display engine support and fixes"

    * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (186 commits)
    clk: qcom: Remove unused arrays in SDM845 GCC
    clk: fixed-rate: fix of_node_get-put imbalance
    clk: s2mps11: Add used attribute to s2mps11_dt_match
    clk: qcom: gcc-sdm660: Add MODULE_LICENSE
    clk: qcom: Add safe switch hook for krait mux clocks
    dt-bindings: clock: Document qcom,krait-cc
    clk: qcom: Add Krait clock controller driver
    dt-bindings: arm: Document qcom,kpss-gcc
    clk: qcom: Add KPSS ACC/GCC driver
    clk: qcom: Add support for Krait clocks
    clk: qcom: Add IPQ806X's HFPLLs
    clk: qcom: Add MSM8960/APQ8064's HFPLLs
    dt-bindings: clock: Document qcom,hfpll
    clk: qcom: Add HFPLL driver
    clk: qcom: Add support for High-Frequency PLLs (HFPLLs)
    ARM: Add Krait L2 register accessor functions
    clk: imx6q: add mmdc0 ipg clock
    clk: imx6sl: add mmdc ipg clocks
    clk: imx6sll: add mmdc1 ipg clock
    clk: imx6sx: add mmdc1 ipg clock
    ...

    Linus Torvalds
     

19 Oct, 2018

1 commit


17 Oct, 2018

1 commit

  • Previously, the CGU code corresponding to the SoC for which we're
    compiling the kernel was the only one enabled, which made it impossible
    to build one kernel that supports them all.

    Now, it is possible to select more than one SoC to support.

    Signed-off-by: Paul Cercueil
    Signed-off-by: Stephen Boyd

    Paul Cercueil
     

09 Oct, 2018

1 commit

  • This patch adds CCF compliant clock driver for ZynqMP.
    Clock driver queries supported clock information from
    firmware and regiters pll and output clocks with CCF.

    Signed-off-by: Rajan Vaja
    Signed-off-by: Tejas Patel
    Signed-off-by: Shubhrajyoti Datta
    Signed-off-by: Jolly Shah
    Acked-by: Olof Johansson
    Reviewed-by: Stephen Boyd
    Signed-off-by: Michal Simek

    Jolly Shah
     

03 Oct, 2018

1 commit


16 Aug, 2018

1 commit

  • Pull clk updates from Stephen Boyd:
    "The new and exciting feature this time around is in the clk core.
    We've added duty cycle support to the clk API so that clk signal duty
    cycle ratios can be adjusted while taking into account things like clk
    dividers and clk tree hierarchy. So far only one SoC has implemented
    support for this, but I expect there will be more to come in the
    future.

    Outside of the core, we have the usual pile of clk driver updates and
    additions. The Amlogic meson driver got the most lines in the diffstat
    this time around because it added support for a whole bunch of
    hardware and duty cycle configuration. After that the Rockchip PX30,
    Qualcomm SDM845, and Renesas SoC drivers fill in a majority of the
    diff. We're left with the collection of non-critical fixes after that.
    Overall it looks pretty quiet this time.

    Core:
    - Clk duty cycle support
    - Proper CLK_SET_RATE_GATE support throughout the tree

    New Drivers:
    - Actions Semi Owl series S700 SoC clk driver
    - Qualcomm SDM845 display clock controller
    - i.MX6SX ocram_s clk support
    - Uniphier NAND, USB3 PHY, and SPI clk support
    - Qualcomm RPMh clk driver
    - i.MX7D mailbox clk support
    - Maxim 9485 Programmable Clock Generator
    - expose 32 kHz PLL on PXA SoCs
    - imx6sll GPIO clk gate support
    - Atmel at91 I2S audio clk support
    - SI544/SI514 clk on/off support
    - i.MX6UL GPIO clock gates in CCM CCGR
    - Renesas Crypto Engine clocks on R-Car H3
    - Renesas clk support for the new RZ/N1D SoC
    - Allwinner A64 display engine clock support
    - support for Rockchip's PX30 SoC
    - Amlogic Meson axg PCIe and audio clocks
    - Amlogic Meson GEN CLK on gxbb, gxl and axg

    Updates:
    - remove an unused variable from Exynos4412 ISP driver
    - fix a thinko bug in SCMI clk division logic
    - add missing of_node_put()s in some i.MX clk drivers
    - Tegra SDMMC clk jitter improvements with high speed signaling modes
    - SPDX tagging for qcom and cs2000-cp drivers
    - stop leaking con ids in __clk_put()
    - fix a corner case in fixed factor clk probing where node is in DT
    but parent clk is registered much later
    - Marvell Armada 3700 clk_pm_cpu_get_parent() had an invalid return
    value
    - i.MX clk init arrays removed in place of CLK_IS_CRITICAL
    - convert to CLK_IS_CRITICAL for i.MX51/53 driver
    - fix Tegra BPMP driver oops when xlating a NULL clk
    - proper default configuration for vic03 and vde clks on Tegra124
    - mark Tegra memory controller clks as critical
    - fix array bounds clamp in Tegra's emc determine_rate() op
    - Ingenic i2s bit update and allow UDC clk to gate
    - fix name of aspeed SDC clk define to have only one 'CLK'
    - fix i.MX6QDL video clk parent
    - critical clk markings for qcom SDM845
    - fix Stratix10 mpu_free_clk and sdmmc_free_clk parents
    - mark Rockchip's pclk_rkpwm_pmu as critical clock, due to it
    supplying the pwm used to drive the logic supply of the rk3399
    core"

    * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (85 commits)
    clk: rockchip: Add pclk_rkpwm_pmu to PMU critical clocks in rk3399
    clk: cs2000-cp: convert to SPDX identifiers
    clk: scmi: Fix the rounding of clock rate
    clk: qcom: Add display clock controller driver for SDM845
    clk: mvebu: armada-37xx-periph: Remove unused var num_parents
    clk: samsung: Remove unused mout_user_aclk400_mcuisp_p4x12 variable
    clk: actions: Add S700 SoC clock support
    dt-bindings: clock: Add S700 support for Actions Semi Soc's
    clk: actions: Add missing REGMAP_MMIO dependency
    clk: uniphier: add clock frequency support for SPI
    clk: uniphier: add more USB3 PHY clocks
    clk: uniphier: add NAND 200MHz clock
    clk: tegra: make sdmmc2 and sdmmc4 as sdmmc clocks
    clk: tegra: Add sdmmc mux divider clock
    clk: tegra: Refactor fractional divider calculation
    clk: tegra: Fix includes required by fence_udelay()
    clk: imx6sll: fix missing of_node_put()
    clk: imx6ul: fix missing of_node_put()
    clk: imx: add ocram_s clock for i.mx6sx
    clk: mvebu: armada-37xx-periph: Fix wrong return value in get_parent
    ...

    Linus Torvalds
     

07 Jul, 2018

1 commit

  • This patch adds a driver for MAX9485, a programmable audio clock generator.

    The device requires a 27.000 MHz clock input. It can provide a gated
    buffered output of its input clock and two gated outputs of a PLL that can
    generate one out of 16 discrete frequencies. There is only one PLL however,
    so the two gated outputs will always have the same frequency but they can
    be switched individually.

    The driver for this device exposes 4 clocks in total:

    - MAX9485_MCLKOUT: A gated, buffered output of the input clock
    - MAX9485_CLKOUT: A PLL that can be configured to 16 different
    discrete frequencies
    - MAX9485_CLKOUT[1,2]: Two gated outputs for MAX9485_CLKOUT

    Some PLL output frequencies can be achieved with different register
    settings. The driver will select the one with lowest jitter in such cases.

    Signed-off-by: Daniel Mack
    [sboyd@kernel.org: Use local variable for val in max9485_clkout_recalc_rate()
    and shorten line of max9485_of_clk_get()]
    Signed-off-by: Stephen Boyd

    Daniel Mack
     

21 Jun, 2018

1 commit

  • We had commit 06e226c7fb23 ("clk: sunxi-ng: Move all clock types to a
    library") and commit 799c43415442 ("kbuild: thin archives make default
    for all archs") in the same development cycle, from different trees.

    With migration to the thin archive, the entire drivers/clk/sunxi-ng/lib.a
    is linked to the vmlinux. This does not break build, but we do not get
    any size saving.

    However, we do not need to go back to the individual Kconfig options.
    The default configuration pulls in all (or most) of the CCU parts anyway.
    Also, once we enable CONFIG_LD_DEAD_CODE_DATA_ELIMINATION, we can simply
    list all files with obj-y, and the linker will drop all unused functions
    by itself.

    After the long discussion [1], people there agreed to fix this, but
    nobody sent a patch after all. I am doing it now.

    I lifted up CONFIG_SUNXI_CCU to drivers/clk/Makefile because everything
    in drivers/clk/sunxi-ng/ depends on SUNXI_CCU.

    [1] https://patchwork.kernel.org/patch/9796521/

    Signed-off-by: Masahiro Yamada
    Acked-by: Stephen Boyd
    Signed-off-by: Maxime Ripard
    Acked-by: Chen-Yu Tsai
    Signed-off-by: Stephen Boyd

    Masahiro Yamada
     

05 Jun, 2018

2 commits

  • …om-rcg-fix' into clk-next

    * clk-qcom-rpmh:
    dt-bindings: clock: Introduce QCOM RPMh clock bindings

    * clk-npcm7xx:
    clk: npcm7xx: fix return value check in npcm7xx_clk_init()
    clk: npcm7xx: add clock controller
    dt-binding: clk: npcm750: Add binding for Nuvoton NPCM7XX Clock

    * clk-of-parent-count:
    pinctrl: sunxi: Use of_clk_get_parent_count() instead of open coding
    soc/tegra: pmc: Use of_clk_get_parent_count() instead of open coding
    soc: rockchip: power-domain: Use of_clk_get_parent_count() instead of open coding
    ARM: timer-sp: Use of_clk_get_parent_count() instead of open coding
    clk: Extract OF clock helpers in <linux/of_clk.h>

    * clk-qcom-rcg-fix:
    clk: qcom: Base rcg parent rate off plan frequency

    Stephen Boyd
     
  • * clk-actions:
    clk: actions: Add S900 SoC clock support
    clk: actions: Add pll clock support
    clk: actions: Add composite clock support
    clk: actions: Add fixed factor clock support
    clk: actions: Add factor clock support
    clk: actions: Add divider clock support
    clk: actions: Add mux clock support
    clk: actions: Add gate clock support
    clk: actions: Add common clock driver support
    dt-bindings: clock: Add Actions S900 clock bindings

    Stephen Boyd
     

17 Apr, 2018

1 commit

  • Nuvoton Poleg BMC NPCM7XX contains an integrated clock controller, which
    generates and supplies clocks to all modules within the BMC.

    Signed-off-by: Tali Perry
    [sboyd@kernel.org: Drop clk_get()s, cleanup whitespace, drop unused
    includes, fix static checker warnings]
    Signed-off-by: Stephen Boyd

    Tali Perry
     

14 Apr, 2018

1 commit

  • Pull clk updates from Stephen Boyd:
    "The large diff this time around is from the addition of a new clk
    driver for the TI Davinci family of SoCs. So far those clks have been
    supported with a custom implementation of the clk API in the arch port
    instead of in the CCF. With this driver merged we're one step closer
    to having a single clk API implementation.

    The other large diff is from the Amlogic clk driver that underwent
    some major surgery to use regmap. Beyond that, the biggest hitter is
    Samsung which needed some reworks to properly handle clk provider
    power domains and a bunch of PLL rate updates.

    The core framework was fairly quiet this round, just getting some
    cleanups and small fixes for some of the more esoteric features. And
    the usual set of driver non-critical fixes, cleanups, and minor
    additions are here as well.

    Core:
    - Rejig clk_ops::init() to be a little earlier for phase/accuracy ops
    - debugfs ops macroized to shave some lines of boilerplate code
    - Always calculate the phase instead of caching it in clk_get_phase()
    - More __must_check on bulk clk APIs

    New Drivers:
    - TI's Davinci family of SoCs
    - Intel's Stratix10 SoC
    - stm32mp157 SoC
    - Allwinner H6 CCU
    - Silicon Labs SI544 clock generator chip
    - Renesas R-Car M3-N and V3H SoCs
    - i.MX6SLL SoCs

    Removed Drivers:
    - ST-Ericsson AB8540/9540

    Updates:
    - Mediatek MT2701 and MT7622 audsys support and MT2712 updates
    - STM32F469 DSI and STM32F769 sdmmc2 support
    - GPIO clks can sleep now
    - Spreadtrum SC9860 RTC clks
    - Nvidia Tegra MBIST workarounds and various minor fixes
    - Rockchip phase handling fixes and a memory leak plugged
    - Renesas drivers switch to readl/writel from clk_readl/clk_writel
    - Renesas gained CPU (Z/Z2) and watchdog support
    - Rockchip rk3328 display clks and rk3399 1.6GHz PLL support
    - Qualcomm PM8921 PMIC XO buffers
    - Amlogic migrates to regmap APIs
    - TI Keystone clk latching support
    - Allwinner H3 and H5 video clk fixes
    - Broadcom BCM2835 PLLs needed another bit to enable
    - i.MX6SX CKO mux fix and i.MX7D Video PLL divider fix
    - i.MX6UL/ULL epdc_podf support
    - Hi3798CV200 COMBPHY0 and USB2_OTG_UTMI and phase support for eMMC"

    * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (233 commits)
    clk: davinci: add a reset lookup table for psc0
    clk: imx: add clock driver for imx6sll
    dt-bindings: imx: update clock doc for imx6sll
    clk: imx: add new gate/gate2 wrapper funtion
    clk: imx: Add CLK_IS_CRITICAL flag for busy divider and busy mux
    clk: cs2000: set pm_ops in hibernate-compatible way
    clk: bcm2835: De-assert/assert PLL reset signal when appropriate
    clk: imx7d: Move clks_init_on before any clock operations
    clk: imx7d: Correct ahb clk parent select
    clk: imx7d: Correct dram pll type
    clk: imx7d: Add USB clock information
    clk: socfpga: stratix10: add clock driver for Stratix10 platform
    dt-bindings: documentation: add clock bindings information for Stratix10
    clk: ti: fix flag space conflict with clkctrl clocks
    clk: uniphier: add additional ethernet clock lines for Pro4
    clk: uniphier: add SATA clock control support
    clk: uniphier: add PCIe clock control support
    clk: Add driver for the si544 clock generator chip
    clk: davinci: Remove redundant dev_err calls
    clk: uniphier: add ethernet clock control support for PXs3
    ...

    Linus Torvalds
     

07 Apr, 2018

4 commits

  • Add support for Actions Semi common clock driver with generic structures
    and interface functions.

    Signed-off-by: Manivannan Sadhasivam
    Signed-off-by: Stephen Boyd

    Manivannan Sadhasivam
     
  • * clk-stratix10:
    clk: socfpga: stratix10: add clock driver for Stratix10 platform
    dt-bindings: documentation: add clock bindings information for Stratix10

    * clk-imx:
    clk: imx7d: Move clks_init_on before any clock operations
    clk: imx7d: Correct ahb clk parent select
    clk: imx7d: Correct dram pll type
    clk: imx7d: Add USB clock information
    clk: imx: pllv2: avoid using uninitialized values
    clk: imx6ull: Add epdc_podf instead of sim_podf
    clk: imx: imx7d: correct video pll clock tree
    clk: imx: imx7d: add the Keypad Port module clock
    clk: imx7d: add CAAM clock
    clk: imx: imx7d: add the snvs clock
    clk: imx: imx6sx: update cko mux options

    * clk-bcm:
    clk: bcm2835: De-assert/assert PLL reset signal when appropriate

    * clk-cs2000:
    clk: cs2000: set pm_ops in hibernate-compatible way

    * clk-imx6sll:
    clk: imx: add clock driver for imx6sll
    dt-bindings: imx: update clock doc for imx6sll
    clk: imx: add new gate/gate2 wrapper funtion
    clk: imx: Add CLK_IS_CRITICAL flag for busy divider and busy mux

    Stephen Boyd
     
  • …lk-ti-flag-fix' into clk-next

    * clk-davinci:
    clk: davinci: Remove redundant dev_err calls
    clk: davinci: cfgchip: Add TI DA8XX USB PHY clocks
    clk: davinci: New driver for TI DA8XX CFGCHIP clocks
    dt-bindings: clock: Add bindings for DA8XX CFGCHIP clocks
    clk: davinci: Add platform information for TI DM646x PSC
    clk: davinci: Add platform information for TI DM644x PSC
    clk: davinci: Add platform information for TI DM365 PSC
    clk: davinci: Add platform information for TI DM355 PSC
    clk: davinci: Add platform information for TI DA850 PSC
    clk: davinci: Add platform information for TI DA830 PSC
    clk: davinci: New driver for davinci PSC clocks
    dt-bindings: clock: New bindings for TI Davinci PSC
    clk: davinci: Add platform information for TI DM646x PLL
    clk: davinci: Add platform information for TI DM644x PLL
    clk: davinci: Add platform information for TI DM365 PLL
    clk: davinci: Add platform information for TI DM355 PLL
    clk: davinci: Add platform information for TI DA850 PLL
    clk: davinci: Add platform information for TI DA830 PLL
    clk: davinci: New driver for davinci PLL clocks
    dt-bindings: clock: Add new bindings for TI Davinci PLL clocks

    * clk-si544:
    clk: Add driver for the si544 clock generator chip

    * clk-rockchip:
    clk: rockchip: assign correct id for pclk_ddr and hclk_sd in rk3399
    clk: rockchip: Fix error return in phase clock registration
    clk: rockchip: Correct the behaviour of restoring cached phase
    clk: rockchip: Fix wrong parents for MMC phase clock for rk3328
    clk: rockchip: Fix wrong parent for SDMMC phase clock for rk3228
    clk: rockchip: Add 1.6GHz PLL rate for rk3399
    clk: rockchip: Restore the clock phase after the rate was changed
    clk: rockchip: Prevent calculating mmc phase if clock rate is zero
    clk: rockchip: Free the memory on the error path
    clk: rockchip: document hdmi_phy external input for rk3328
    clk: rockchip: add flags for rk3328 dclk_lcdc
    clk: rockchip: remove ignore_unused flag from rk3328 vio_h2p clocks
    clk: rockchip: protect all remaining rk3328 interconnect clocks
    clk: rockchip: export sclk_hdmi_sfc on rk3328
    clk: rockchip: remove HCLK_VIO from rk3328 dt header
    clk: rockchip: fix hclk_vio_niu on rk3328

    * clk-uniphier:
    clk: uniphier: add additional ethernet clock lines for Pro4
    clk: uniphier: add SATA clock control support
    clk: uniphier: add PCIe clock control support
    clk: uniphier: add ethernet clock control support for PXs3
    clk: uniphier: add Pro4/Pro5/PXs2 audio system clock

    * clk-ti-flag-fix:
    clk: ti: fix flag space conflict with clkctrl clocks
    clk: ti: clkctrl: add support for CLK_SET_RATE_PARENT flag

    Stephen Boyd
     
  • Add a clock driver for the Stratix10 SoC. The driver is similar to the
    Cyclone5/Arria10 platforms, with the exception that this driver only uses
    one single clock binding.

    Signed-off-by: Dinh Nguyen
    Signed-off-by: Stephen Boyd

    Dinh Nguyen
     

24 Mar, 2018

1 commit

  • This patch adds the driver and devicetree documentation for the
    Silicon Labs SI544 clock generator chip. This is an I2C controlled
    oscillator capable of generating clock signals ranging from 200kHz
    to 1500MHz.

    Signed-off-by: Mike Looijmans
    [sboyd: assign max_freq to 0 in is_valid_frequency() to squelch warning]
    Signed-off-by: Stephen Boyd

    Mike Looijmans
     

21 Mar, 2018

1 commit

  • This adds a new driver for mach-davinci PLL clocks. This is porting the
    code from arch/arm/mach-davinci/clock.c to the common clock framework.
    Additionally, it adds device tree support for these clocks.

    The ifeq ($(CONFIG_COMMON_CLK), y) in the Makefile is needed to prevent
    compile errors until the clock code in arch/arm/mach-davinci is removed.

    Note: although there are similar clocks for TI Keystone we are not able
    to share the code for a few reasons. The keystone clocks are device tree
    only and use legacy one-node-per-clock bindings. Also the register
    layouts are a bit different, which would add even more if/else mess
    to the keystone clocks. And the keystone PLL driver doesn't support
    setting clock rates.

    Signed-off-by: David Lechner
    Signed-off-by: Stephen Boyd

    David Lechner
     

20 Mar, 2018

1 commit


12 Mar, 2018

1 commit

  • This patch introduces the mechanism to probe stm32mp1 driver.
    It also defines registers definition.
    This patch also introduces the generic mechanism to register
    a clock (a simple gate, divider and fixed factor).

    All clocks will be defined in one table.

    Signed-off-by: Gabriel Fernandez
    Signed-off-by: Michael Turquette

    Gabriel Fernandez
     

01 Mar, 2018

1 commit

  • On some ARM based systems, a separate Cortex-M based System Control
    Processor(SCP) provides the overall power, clock, reset and system
    control. System Control and Management Interface(SCMI) Message Protocol
    is defined for the communication between the Application Cores(AP)
    and the SCP.

    This patch adds support for the clocks provided by SCP using SCMI
    protocol.

    Cc: linux-clk@vger.kernel.org
    Cc: Michael Turquette
    Acked-by: Stephen Boyd
    Signed-off-by: Sudeep Holla

    Sudeep Holla
     

27 Jan, 2018

2 commits

  • * clk-aspeed:
    clk: aspeed: Handle inverse polarity of USB port 1 clock gate
    clk: aspeed: Fix return value check in aspeed_cc_init()
    clk: aspeed: Add reset controller
    clk: aspeed: Register gated clocks
    clk: aspeed: Add platform driver and register PLLs
    clk: aspeed: Register core clocks
    clk: Add clock driver for ASPEED BMC SoCs
    dt-bindings: clock: Add ASPEED constants

    * clk-lock-UP:
    clk: fix reentrancy of clk_enable() on UP systems

    * clk-mediatek:
    clk: mediatek: adjust dependency of reset.c to avoid unexpectedly being built
    clk: mediatek: Fix all warnings for missing struct clk_onecell_data
    clk: mediatek: fixup test-building of MediaTek clock drivers
    clk: mediatek: group drivers under indpendent menu

    * clk-allwinner:
    clk: sunxi-ng: a83t: Add M divider to TCON1 clock
    clk: sunxi-ng: fix the A64/H5 clock description of DE2 CCU
    clk: sunxi-ng: add support for Allwinner H3 DE2 CCU
    dt-bindings: fix the binding of Allwinner DE2 CCU of A83T and H3
    clk: sunxi-ng: sun8i: a83t: Use sigma-delta modulation for audio PLL
    clk: sunxi-ng: sun8i: a83t: Add /2 fixed post divider to audio PLL
    clk: sunxi-ng: Support fixed post-dividers on NM style clocks
    clk: sunxi-ng: sun50i: a64: Add 2x fixed post-divider to MMC module clocks
    clk: sunxi-ng: Support fixed post-dividers on MP style clocks
    clk: sunxi: Use PTR_ERR_OR_ZERO()

    Stephen Boyd
     
  • This adds the stub of a driver for the ASPEED SoCs. The clocks are
    defined and the static registration is set up.

    Reviewed-by: Andrew Jeffery
    Signed-off-by: Joel Stanley
    Reviewed-by: Benjamin Herrenschmidt
    Signed-off-by: Stephen Boyd

    Joel Stanley
     

22 Dec, 2017

2 commits


02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman