Skip to content
Permalink
Marek-Vasut/dt…
Switch branches/tags

Commits on Nov 8, 2021

  1. dt-bindings: clk: Introduce 'critical-clocks' property

    NOTE: This is an RFC patch showing how this mechanism might be workable.
    
    Some platforms require clock to be always running, e.g. because those clock
    supply devices which are not otherwise attached to the system. One example
    is a system where the SoC serves as a crystal oscillator replacement for a
    programmable logic device. The critical-clock property of a clock controller
    allows listing clock which must never be turned off.
    
    The implementation here is similar to "protected-clock", except protected
    clock property is currently driver specific. This patch attempts to make
    a generic implementation of "critical-clock" instead.
    
    Unlike "assigned-clocks", the "critical-clock" must be parsed much earlier
    in __clk_register() to assign CLK_IS_CRITICAL flag to clk_init_data .flags
    field. The parsing code obviously need to be cleaned up and factor out into
    separate function.
    
    The new match_clkspec() callback is used to determine whether struct clk_hw
    that is currently being registered matches the clock specifier in the DT
    "critical-clock" property, and if so, then the CLK_IS_CRITICAL is added to
    these newly registered clock. This callback is currently driver specific,
    although I suspect a common and/or generic version of the callback could
    be added. Also, this new callback could possibly be used to replace (*get)
    argument of of_clk_add_hw_provider() later on too.
    
    Thoughts (on the overall design, not code quality or patch splitting) ?
    
    Signed-off-by: Marek Vasut <marex@denx.de>
    Cc: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
    Cc: Michael Turquette <mturquette@baylibre.com>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: Stephen Boyd <sboyd@kernel.org>
    Cc: devicetree@vger.kernel.org
    Cc: linux-power@fi.rohmeurope.com
    To: linux-clk@vger.kernel.org
    Marek Vasut authored and intel-lab-lkp committed Nov 8, 2021

Commits on Nov 5, 2021

  1. clk: qcom: gcc-msm8996: Drop (again) gcc_aggre1_pnoc_ahb_clk

    The gcc_aggre1_pnoc_ahb_clk is crucial for the proper MSM8996/APQ8096
    functioning. If it gets disabled, several subsytems will stop working
    (including eMMC/SDCC and USB). There are no in-kernel users of this
    clock, so it is much simpler to remove from the kernel.
    
    The clock was first removed in the commit 9e60de1 ("clk: qcom:
    Remove gcc_aggre1_pnoc_ahb_clk from msm8996") by Stephen Boyd, but got
    added back in the commit b567752 ("clk: qcom: Add some missing gcc
    clks for msm8996") by Rajendra Nayak.
    
    Let's remove it again in hope that nobody adds it back.
    
    Reported-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
    Cc: Rajendra Nayak <rnayak@codeaurora.org>
    Cc: Konrad Dybcio <konrad.dybcio@somainline.org>
    Fixes: b567752 ("clk: qcom: Add some missing gcc clks for msm8996")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20211104011155.2209654-1-dmitry.baryshkov@linaro.org
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    lumag authored and bebarino committed Nov 5, 2021
  2. clk: imx8m: Do not set IMX_COMPOSITE_CORE for non-regular composites

    Only imx8m_clk_hw_composite_core needs to set this flag.
    
    Fixes: a60fe74 ("clk: imx: Rework all imx_clk_hw_composite wrappers")
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Link: https://lore.kernel.org/r/20211103123947.3222443-1-alexander.stein@ew.tq-group.com
    Reviewed-by: Abel Vesa <abel.vesa@nxp.com>
    Tested-by: Adam Ford <aford173@gmail.com> #imx8mm-beacon
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    tq-steina authored and bebarino committed Nov 5, 2021

Commits on Nov 4, 2021

  1. clk/ast2600: Fix soc revision for AHB

    Move the soc revision parsing to the initial probe, saving the driver
    from parsing the register multiple times.
    
    Use this variable to select the correct divisor table for the AHB clock.
    Before this fix the A2 would have used the A0 table.
    
    Fixes: 2d49106 ("clk: ast2600: Fix AHB clock divider for A1")
    Signed-off-by: Joel Stanley <joel@jms.id.au>
    Link: https://lore.kernel.org/r/20210922235449.213631-1-joel@jms.id.au
    Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    shenki authored and bebarino committed Nov 4, 2021
  2. clk: composite: Fix 'switching' to same clock

    During commit 6594988 ("clk: composite: Use rate_ops.determine_rate
    when also a mux is available") setting req->best_parent_hw got lost,
    so best_parent_hw stays NULL during switch to the same parent. This
    results in the (debug) message:
      clk_calc_new_rates: lcdif_pixel not gated but wants to reparent
    and the following rate change is dropped.
    
    Fixes: 6594988 ("clk: composite: Use rate_ops.determine_rate when also a mux is available")
    Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
    Link: https://lore.kernel.org/r/20211103122441.3208576-1-alexander.stein@ew.tq-group.com
    Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    tq-steina authored and bebarino committed Nov 4, 2021

Commits on Nov 3, 2021

  1. clk: rockchip: drop module parts from rk3399 and rk3568 drivers

    Both of these drivers were converted to real drivers and got a tristate
    build option. But them being builtin_platform_drivers, they only ever
    should be build-in - as the name suggests.
    
    So adapt the Kconfig symbol and drop the MODULE_* parts from the drivers.
    
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Link: https://lore.kernel.org/r/20211027132616.1039814-3-heiko@sntech.de
    Reviewed-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    mmind authored and bebarino committed Nov 3, 2021
  2. Revert "clk: rockchip: use module_platform_driver_probe"

    This reverts commit 1da80da.
    
    Reading recent discussions [0] [1], I realized this change introduces
    a number of problems:
    
    - only converting to module_platform_driver creates the issue
      with the existing __init and __initdata attributes.
    
      When the driver would've been built as a module, all the missing
      clock-definitions (all are initdata) should've turned up as error
      in testing suggesting that the change wasn't at all
    
    - a clock driver is a very core component of soc bringup and making
      this able to be built as a module solely for enabling the soc vendor
      to add out of tree changes for Android implementations is not in our
      interest and also everything except a ramdisk won't probe without a
      clock controller.
    
      This is especially true when the changes aren't really tested and
      are merely added to move the mainline driver "out of the way".
    
    [0] https://lwn.net/Articles/872209/
    [1] https://lore.kernel.org/all/163529604399.15791.378104318036812951@swboyd.mtv.corp.google.com/
    
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Link: https://lore.kernel.org/r/20211027132616.1039814-2-heiko@sntech.de
    Reviewed-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    mmind authored and bebarino committed Nov 3, 2021

Commits on Nov 2, 2021

  1. clk:mediatek: remove duplicate include in clk-mt8195-imp_iic_wrap.c

    'dt-bindings/clock/mt8195-clk.h' included in
    '/drivers/clk/mediatek/clk-mt8195-imp_iic_wrap.c' is duplicated.It is
    also included on the 13 line.
    
    Reported-by: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Ran Jianping <ran.jianping@zte.com.cn>
    Link: https://lore.kernel.org/r/20211019062939.979660-1-ran.jianping@zte.com.cn
    Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Ran Jianping authored and bebarino committed Nov 2, 2021
  2. dt-bindings: clock: fu740-prci: add reset-cells

    The SiFive FU740 Power Reset Clock Interrupt Controller is a reset line
    provider so add respective reset-cells property to fix:
    
      arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dt.yaml: clock-controller@10000000:
        '#reset-cells' does not match any of the regexes: 'pinctrl-[0-9]+'
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Link: https://lore.kernel.org/r/20210920144944.162431-1-krzysztof.kozlowski@canonical.com
    Reviewed-by: Rob Herring <robh@kernel.org>
    Acked-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    krzk authored and bebarino committed Nov 2, 2021
  3. clk: uniphier: Add SoC-glue clock source selector support for Pro4

    Add SoC-glue clock source selector for ahci controller on UniPhier SoCs.
    Currently this supports Pro4 only.
    
    Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
    Link: https://lore.kernel.org/r/1634000035-3114-6-git-send-email-hayashi.kunihiko@socionext.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    khayash1 authored and bebarino committed Nov 2, 2021
  4. dt-bindings: clock: uniphier: Add clock binding for SoC-glue

    Update binding document for clocks implemented in SoC-glue.
    
    Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
    Link: https://lore.kernel.org/r/1634000035-3114-5-git-send-email-hayashi.kunihiko@socionext.com
    Acked-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    khayash1 authored and bebarino committed Nov 2, 2021
  5. clk: uniphier: Add NX1 clock support

    Add basic clock data for UniPhier NX1 SoC.
    This includes PLL and clock division data for cpufreq support.
    
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
    Link: https://lore.kernel.org/r/1634000035-3114-4-git-send-email-hayashi.kunihiko@socionext.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    khayash1 authored and bebarino committed Nov 2, 2021
  6. dt-bindings: clock: uniphier: Add NX1 clock binding

    Update clock binding document for UniPhier NX1 SoC.
    
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
    Link: https://lore.kernel.org/r/1634000035-3114-3-git-send-email-hayashi.kunihiko@socionext.com
    Acked-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    khayash1 authored and bebarino committed Nov 2, 2021
  7. clk: uniphier: Add audio system and video input clock control for PXs3

    Add clocks for audio subsystem (AIO) and video input subsystem (EXIV) on
    UniPhier PXs3 SoC.
    
    Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
    Link: https://lore.kernel.org/r/1634000035-3114-2-git-send-email-hayashi.kunihiko@socionext.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    khayash1 authored and bebarino committed Nov 2, 2021
  8. clk: si5351: Update datasheet references

    Silicon Labs is now part of Skyworks Inc. so update the URLs to the
    datasheet and application note.
    
    Signed-off-by: Jens Renner <renner@efe-gmbh.de>
    Link: https://lore.kernel.org/r/20210913074823.115212-1-renner@efe-gmbh.de
    Acked-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    jensrenner1980 authored and bebarino committed Nov 2, 2021
  9. clk: vc5: Use i2c .probe_new

    The old .probe is "soon to be deprecated". Use the new, simpler form.
    
    Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
    Link: https://lore.kernel.org/r/20210928095041.17116-1-luca@lucaceresoli.net
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    lucaceresoli authored and bebarino committed Nov 2, 2021
  10. clk/actions/owl-factor.c: remove superfluous headers

    owl-factor.c hasn't use any macro or function declared in linux/slab.h.
    Thus, these files can be removed from owl-factor.c safely without
    affecting the compilation of the ./drivers/clk module
    
    Signed-off-by: Mianhan Liu <liumh1@shanghaitech.edu.cn>
    Link: https://lore.kernel.org/r/20210929065824.23691-1-liumh1@shanghaitech.edu.cn
    Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    oscarliu2019 authored and bebarino committed Nov 2, 2021
  11. clk: ingenic: Fix bugs with divided dividers

    Two fixes in one:
    
    - In the "impose hardware constraints" block, the "logical" divider
      value (aka. not translated to the hardware) was clamped to fit in the
      register area, but this totally ignored the fact that the divider
      value can itself have a fixed divider.
    
    - The code that made sure that the divider value returned by the
      function was a multiple of its own fixed divider could result in a
      wrong value being calculated, because it was rounded down instead of
      rounded up.
    
    Fixes: 4afe2d1 ("clk: ingenic: Allow divider value to be divided")
    Co-developed-by: Artur Rojek <contact@artur-rojek.eu>
    Signed-off-by: Artur Rojek <contact@artur-rojek.eu>
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Link: https://lore.kernel.org/r/20211001172033.122329-1-paul@crapouillou.net
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    pcercuei authored and bebarino committed Nov 2, 2021
  12. Merge branches 'clk-composite-determine-fix', 'clk-allwinner', 'clk-a…

    …mlogic' and 'clk-samsung' into clk-next
    
    * clk-composite-determine-fix:
      clk: composite: Use rate_ops.determine_rate when also a mux is available
      clk: composite: Also consider .determine_rate for rate + mux composites
    
    * clk-allwinner:
      clk: sunxi: sun8i-apb0: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi: sun6i-ar100: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi: sun6i-apb0-gates: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi: sun6i-apb0: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi-ng: ccu-sun9i-a80-usb: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi-ng: ccu-sun9i-a80-de: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi-ng: ccu-sun9i-a80: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi-ng: ccu-sun8i-r40: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi-ng: ccu-sun8i-de2: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi-ng: ccu-sun8i-a83t: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi-ng: ccu-sun50i-h6: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi-ng: ccu-sun50i-a64: Make use of the helper function devm_platform_ioremap_resource()
      clk: sunxi: clk-mod0: Make use of the helper function devm_platform_ioremap_resource()
      dt-bindings: clocks: Fix typo in the H6 compatible
      clk: sunxi-ng: Use a separate lock for each CCU instance
      clk: sunxi-ng: Prevent unbinding CCUs via sysfs
      clk: sunxi-ng: Unregister clocks/resets when unbinding
      clk: sunxi-ng: Add machine dependency to A83T CCU
      clk: sunxi-ng: mux: Remove unused 'reg' field
    
    * clk-amlogic:
      clk: meson: meson8b: Make the video clock trees mutable
      clk: meson: meson8b: Initialize the HDMI PLL registers
      clk: meson: meson8b: Add the HDMI PLL M/N parameters
      clk: meson: meson8b: Add the vid_pll_lvds_en gate clock
      clk: meson: meson8b: Use CLK_SET_RATE_NO_REPARENT for vclk{,2}_in_sel
      clk: meson: meson8b: Export the video clocks
    
    * clk-samsung:
      clk: samsung: describe drivers in Kconfig
      clk: samsung: exynos5433: update apollo and atlas clock probing
      clk: samsung: add support for CPU clocks
      clk: samsung: Introduce Exynos850 clock driver
      dt-bindings: clock: Document Exynos850 CMU bindings
      dt-bindings: clock: Add bindings definitions for Exynos850 CMU
      clk: samsung: clk-pll: Implement pll0831x PLL type
      clk: samsung: clk-pll: Implement pll0822x PLL type
      clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource()
      clk: samsung: exynos5433: Make use of devm_platform_ioremap_resource()
      clk: samsung: exynos4412-isp: Make use of devm_platform_ioremap_resource()
      clk: samsung: exynos-audss: Make use of devm_platform_ioremap_resource()
    bebarino committed Nov 2, 2021
  13. Merge branches 'clk-imx', 'clk-ux500' and 'clk-debugfs' into clk-next

    * clk-imx: (21 commits)
      clk: imx: Make CLK_IMX8ULP select MXC_CLK
      clk: imx: imx6ul: Fix csi clk gate register
      clk: imx: imx6ul: Move csi_sel mux to correct base register
      clk: imx: Fix the build break when clk-imx8ulp build as module
      clk: imx: Add the pcc reset controller support on imx8ulp
      clk: imx: Add clock driver for imx8ulp
      clk: imx: Update the pfdv2 for 8ulp specific support
      clk: imx: disable the pfd when set pfdv2 clock rate
      clk: imx: Add 'CLK_SET_RATE_NO_REPARENT' for composite-7ulp
      clk: imx: disable i.mx7ulp composite clock during initialization
      clk: imx: Update the compsite driver to support imx8ulp
      clk: imx: Update the pllv4 to support imx8ulp
      dt-bindings: clock: Add imx8ulp clock support
      clk: imx: Rework imx_clk_hw_pll14xx wrapper
      clk: imx: Rework all imx_clk_hw_composite wrappers
      clk: imx: Rework all clk_hw_register_divider wrappers
      clk: imx: Rework all clk_hw_register_mux wrappers
      clk: imx: Rework all clk_hw_register_gate2 wrappers
      clk: imx: Rework all clk_hw_register_gate wrappers
      clk: imx: Make mux/mux2 clk based helpers use clk_hw based ones
      ...
    
    * clk-ux500:
      clk: ux500: Add driver for the reset portions of PRCC
      dt-bindings: clock: u8500: Rewrite in YAML and extend
    
    * clk-debugfs:
      clk: use clk_core_get_rate_recalc() in clk_rate_get()
    bebarino committed Nov 2, 2021
  14. Merge branches 'clk-leak', 'clk-rockchip', 'clk-renesas' and 'clk-at9…

    …1' into clk-next
    
     - Clock power management for new SAMA7G5 SoC
     - Updates to the master clock driver and sam9x60-pll to be able to use
       cpufreq-dt driver and avoid overclocking of CPU and MCK0 domains while
       changing the frequency via DVFS
     - Power management refinement with the use of save_context()/restore_context()
       on each clock driver to specify their use in case of Backup mode only
    
    * clk-leak:
      clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths
    
    * clk-rockchip:
      clk: rockchip: use module_platform_driver_probe
      clk: rockchip: rk3399: expose PCLK_COREDBG_{B,L}
      clk: rockchip: rk3399: make CPU clocks critical
    
    * clk-renesas:
      clk: renesas: r8a779[56]x: Add MLP clocks
      clk: renesas: r9a07g044: Add SDHI clock and reset entries
      clk: renesas: rzg2l: Add SDHI clk mux support
      clk: renesas: r8a779a0: Add RPC support
      clk: renesas: cpg-lib: Move RPC clock registration to the library
      clk: renesas: r9a07g044: Add clock and reset entries for SPI Multi I/O Bus Controller
      clk: renesas: r8a779a0: Add Z0 and Z1 clock support
      clk: renesas: r9a07g044: Add GbEthernet clock/reset
      clk: renesas: rzg2l: Add support to handle coupled clocks
      clk: renesas: r9a07g044: Add ethernet clock sources
      clk: renesas: rzg2l: Add support to handle MUX clocks
      clk: renesas: r8a779a0: Add TPU clock
      clk: renesas: rzg2l: Fix clk status function
      clk: renesas: r9a07g044: Mark IA55_CLK and DMAC_ACLK critical
    
    * clk-at91:
      clk: at91: sama7g5: set low limit for mck0 at 32KHz
      clk: at91: sama7g5: remove prescaler part of master clock
      clk: at91: clk-master: add notifier for divider
      clk: at91: clk-sam9x60-pll: add notifier for div part of PLL
      clk: at91: clk-master: fix prescaler logic
      clk: at91: clk-master: mask mckr against layout->mask
      clk: at91: clk-master: check if div or pres is zero
      clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL
      clk: at91: pmc: add sama7g5 to the list of available pmcs
      clk: at91: clk-master: improve readability by using local variables
      clk: at91: clk-master: add register definition for sama7g5's master clock
      clk: at91: sama7g5: add securam's peripheral clock
      clk: at91: pmc: execute suspend/resume only for backup mode
      clk: at91: re-factor clocks suspend/resume
      clk: at91: check pmc node status before registering syscore ops
    bebarino committed Nov 2, 2021
  15. Merge branches 'clk-qcom', 'clk-mtk', 'clk-versatile' and 'clk-doc' i…

    …nto clk-next
    
     - Use ARRAY_SIZE in qcom clk drivers
     - Remove some impractical fallback parent names in qcom clk drivers
     - GCC and RPMcc support for Qualcomm QCM2290 SoCs
     - GCC support for Qualcomm MSM8994/MSM8992 SoCs
     - LPASSCC and CAMCC support for Qualcomm SC7280 SoCs
     - Support for Mediatek MT8195 SoCs
     - Make Mediatek clk drivers tristate
    
    * clk-qcom: (44 commits)
      clk: qcom: gdsc: enable optional power domain support
      clk: qcom: videocc-sm8250: use runtime PM for the clock controller
      clk: qcom: dispcc-sm8250: use runtime PM for the clock controller
      dt-bindings: clock: qcom,videocc: add mmcx power domain
      dt-bindings: clock: qcom,dispcc-sm8x50: add mmcx power domain
      clk: qcom: gcc-sc7280: Drop unused array
      clk: qcom: camcc: Add camera clock controller driver for SC7280
      dt-bindings: clock: Add YAML schemas for CAMCC clocks on SC7280
      clk: qcom: Add lpass clock controller driver for SC7280
      dt-bindings: clock: Add YAML schemas for LPASS clocks on SC7280
      clk: qcom: Kconfig: Sort the symbol for SC_LPASS_CORECC_7180
      clk: qcom: mmcc-sdm660: Add hw_ctrl flag to venus_core0_gdsc
      clk: qcom: mmcc-sdm660: Add necessary CXCs to venus_gdsc
      clk: qcom: gcc-msm8994: Use ARRAY_SIZE() for num_parents
      clk: qcom: gcc-msm8994: Add proper msm8992 support
      clk: qcom: gcc-msm8994: Add modem reset
      clk: qcom: gcc-msm8994: Remove the inexistent GDSC_PCIE
      clk: qcom: gcc-msm8994: Add missing clocks
      clk: qcom: gcc-msm8994: Add missing NoC clocks
      clk: qcom: gcc-msm8994: Fix up SPI QUP clocks
      ...
    
    * clk-mtk: (28 commits)
      clk: mediatek: Export clk_ops structures to modules
      clk: mediatek: support COMMON_CLK_MT6779 module build
      clk: mediatek: support COMMON_CLK_MEDIATEK module build
      clk: composite: export clk_register_composite
      clk: mediatek: Add MT8195 apusys clock support
      clk: mediatek: Add MT8195 imp i2c wrapper clock support
      clk: mediatek: Add MT8195 wpesys clock support
      clk: mediatek: Add MT8195 vppsys1 clock support
      clk: mediatek: Add MT8195 vppsys0 clock support
      clk: mediatek: Add MT8195 vencsys clock support
      clk: mediatek: Add MT8195 vdosys1 clock support
      clk: mediatek: Add MT8195 vdosys0 clock support
      clk: mediatek: Add MT8195 vdecsys clock support
      clk: mediatek: Add MT8195 scp adsp clock support
      clk: mediatek: Add MT8195 mfgcfg clock support
      clk: mediatek: Add MT8195 ipesys clock support
      clk: mediatek: Add MT8195 imgsys clock support
      clk: mediatek: Add MT8195 ccusys clock support
      clk: mediatek: Add MT8195 camsys clock support
      clk: mediatek: Add MT8195 infrastructure clock support
      ...
    
    * clk-versatile:
      clk: versatile: hide clock drivers from non-ARM users
      clk: versatile: Rename ICST to CLK_ICST
      clk: versatile: clk-icst: Support 'reg' in addition to 'vco-offset' for register address
      dt-bindings: clock: arm,syscon-icst: Use 'reg' instead of 'vco-offset' for VCO register address
    
    * clk-doc:
      dt-bindings: clk: fixed-mmio-clock: Convert to YAML
    bebarino committed Nov 2, 2021

Commits on Oct 27, 2021

  1. clk: use clk_core_get_rate_recalc() in clk_rate_get()

    In case clock flags contains CLK_GET_RATE_NOCACHE the clk_rate_get()
    will return the cached rate. Thus, use clk_core_get_rate_recalc() which
    takes proper action when clock flags contains CLK_GET_RATE_NOCACHE.
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-16-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    [sboyd@kernel.org: Grab prepare lock around operation]
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  2. clk: at91: sama7g5: set low limit for mck0 at 32KHz

    MCK0 could go as low as 32KHz. Set this limit.
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-15-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  3. clk: at91: sama7g5: remove prescaler part of master clock

    On SAMA7G5 the prescaler part of master clock has been implemented as a
    changeable one. Everytime the prescaler is changed the PMC_SR.MCKRDY bit
    must be polled. Value 1 for PMC_SR.MCKRDY means the prescaler update is
    done. Driver polls for this bit until it becomes 1. On SAMA7G5 it has
    been discovered that in some conditions the PMC_SR.MCKRDY is not rising
    but the rate it provides it's stable. The workaround is to add a timeout
    when polling for PMC_SR.MCKRDY. At the moment, for SAMA7G5, the prescaler
    will be removed from Linux clock tree as all the frequencies for CPU could
    be obtained from PLL and also there will be less overhead when changing
    frequency via DVFS.
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-14-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  4. clk: at91: clk-master: add notifier for divider

    SAMA7G5 supports DVFS by changing cpuck. On SAMA7G5 mck0 shares the same
    parent with cpuck as seen in the following clock tree:
    
                           +----------> cpuck
                           |
    FRAC PLL ---> DIV PLL -+-> DIV ---> mck0
    
    mck0 could go b/w 32KHz and 200MHz on SAMA7G5. To avoid mck0 overclocking
    while changing FRAC PLL or DIV PLL the commit implements a notifier for
    mck0 which applies a safe divider to register (maximum value of the divider
    which is 5) on PRE_RATE_CHANGE events (such that changes on PLL to not
    overclock mck0) and sets the maximum allowed rate on POST_RATE_CHANGE
    events.
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-13-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  5. clk: at91: clk-sam9x60-pll: add notifier for div part of PLL

    SAM9X60's PLL which is also part of SAMA7G5 is composed of 2 parts:
    one fractional part and one divider. On SAMA7G5 the CPU PLL could be
    changed at run-time to implement DVFS. The hardware clock tree on
    SAMA7G5 for CPU PLL is as follows:
    
                           +---- div1 ----------------> cpuck
                           |
    FRAC PLL ---> DIV PLL -+-> prescaler ---> div0 ---> mck0
    
    The div1 block is not implemented in Linux; on prescaler block it has
    been discovered a bug on some scenarios and will be removed from Linux
    in next commits. Thus, the final clock tree that will be used in Linux
    will be as follows:
    
                           +-----------> cpuck
                           |
    FRAC PLL ---> DIV PLL -+-> div0 ---> mck0
    
    It has been proposed in [1] to not introduce a new CPUFreq driver but
    to overload the proper clock drivers with proper operation such that
    cpufreq-dt to be used. To accomplish this DIV PLL and div0 implement
    clock notifiers which applies safe dividers before FRAC PLL is changed.
    The current commit treats only the DIV PLL by adding a notifier that
    sets a safe divider on PRE_RATE_CHANGE events. The safe divider is
    provided by initialization clock code (sama7g5.c). The div0 is treated
    in next commits (to keep the changes as clean as possible).
    
    [1] https://lore.kernel.org/lkml/20210105104426.4tmgc2l3vyicwedd@vireshk-i7/
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-12-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  6. clk: at91: clk-master: fix prescaler logic

    When prescaler value read from register is MASTER_PRES_MAX it means
    that the input clock will be divided by 3. Fix the code to reflect
    this.
    
    Fixes: 7a110b9 ("clk: at91: clk-master: re-factor master clock")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-11-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  7. clk: at91: clk-master: mask mckr against layout->mask

    Mask values read/written from/to MCKR against layout->mask as this
    mask may be different b/w PMC versions.
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-10-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  8. clk: at91: clk-master: check if div or pres is zero

    Check if div or pres is zero before using it as argument for ffs().
    In case div is zero ffs() will return 0 and thus substracting from
    zero will lead to invalid values to be setup in registers.
    
    Fixes: 7a110b9 ("clk: at91: clk-master: re-factor master clock")
    Fixes: 75c8814 ("clk: at91: clk-master: add master clock support for SAMA7G5")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-9-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  9. clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL

    Use DIV_ROUND_CLOSEST_ULL() to avoid any inconsistency b/w the rate
    computed in sam9x60_frac_pll_recalc_rate() and the one computed in
    sam9x60_frac_pll_compute_mul_frac().
    
    Fixes: 43b1bb4 ("clk: at91: clk-sam9x60-pll: re-factor to support plls with multiple outputs")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-8-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  10. clk: at91: pmc: add sama7g5 to the list of available pmcs

    Add SAMA7G5 to the list of available PMCs such that the suspend/resume
    code for clocks to be used on backup mode.
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-7-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  11. clk: at91: clk-master: improve readability by using local variables

    Improve readability in clk_sama7g5_master_set() by using local
    variables.
    
    Suggested-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-6-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  12. clk: at91: clk-master: add register definition for sama7g5's master c…

    …lock
    
    SAMA7G5 has 4 master clocks (MCK1..4) which are controlled though the
    register at offset 0x30 (relative to PMC). In the last/first phase of
    suspend/resume procedure (which is architecture specific) the parent
    of master clocks are changed (via assembly code) for more power saving
    (see file arch/arm/mach-at91/pm_suspend.S, macros at91_mckx_ps_enable
    and at91_mckx_ps_restore). Thus the macros corresponding to register
    at offset 0x30 need to be shared b/w clk-master.c and pm_suspend.S.
    commit ec03f18 ("clk: at91: add register definition for sama7g5's
    master clock") introduced the proper macros but didn't adapted the
    clk-master.c as well. Thus, this commit adapt the clk-master.c to use
    the macros introduced in commit ec03f18 ("clk: at91: add register
    definition for sama7g5's master clock").
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-5-claudiu.beznea@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
  13. clk: at91: sama7g5: add securam's peripheral clock

    Add SECURAM's peripheral clock.
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20211011112719.3951784-4-claudiu.beznea@microchip.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    claudiubeznea authored and bebarino committed Oct 27, 2021
Older