various Qualcomm chips and Canaan K230. Otherwise there's
non-critical fixes and updates to clk data such as adding missing
clks to existing drivers or marking clks critical. Nothing looks
especially exciting.
-----BEGIN PGP SIGNATURE-----
iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmo9Q6oUHHN3Ym95ZEBj
aHJvbWl1bS5vcmcACgkQrQKIl8bklSXXFA/9GpTMt3p0Mi/sT/AszYTU+RsVXGpW
q7XQ3MnO6rzd/NvzVGTptmQdbOj54jl1yXosEmTs+Won9OtSuOPjxVamtDRTJMpl
YOT5ixy4JNVBxwdxgyrSIoEQ6+MhTj91uBXA74MiO6Kk2CFTEHafTQC2P0HQyPv9
aaHx53ViKM6UwI6IgWajfmRS8CMzWlEjPFF6v9zG8vWAls22J1SkrW5h7ovFJM2F
osl6OkNc6prRc0gOrhzmtekX2e1e3Eg9HKlXwNV58LRtysXMpmqTm2zYvxv0iltb
GV2V5fX9fcJI45dWOGStxJ2mO6NswDWjNYF9kFefvpqVrRRluhX+Af9/bbqTwVXt
+PEHsdJYRTzlaIbMuGfASTqmo6Sp5MkHG1PV5tAQglX16yVNMqk11gjoPHVA4zEF
CRkC494s4nX2XMM85MBeqTyh8bue0LQqz9QAsUBaU0XRvJJhDMw81P34QOFTfq9n
UEBmnv+dRqsHvXQsJzB+8q+F+kx12M3GIkGqX/O1eZT+9sGjTVY3XFIbvH01vN4W
OGUB9q6ZixD25d8MA6mussel2O6An4S7NU+zRsSz1xZd2W7IGNtk908dr7mJOh13
8rG9DW73XRpKNYhX/IszDFjyPHUuZPYU8RyYTwf63ADGJHVVFcHZ78V4ORuPh2AY
TnZt1wOsq1a/xd8=
=hEhO
-----END PGP SIGNATURE-----
Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
Pull clk updates from Stephen Boyd:
"This is all clk driver updates. Mostly new SoC support for various
Qualcomm chips and Canaan K230. Otherwise there's non-critical fixes
and updates to clk data such as adding missing clks to existing
drivers or marking clks critical. Nothing looks especially exciting"
* tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (106 commits)
clk: qcom: regmap-phy-mux: Rework the implementation
clk: qcom: a53: Corrected frequency multiplier for 1152MHz
clk: qcom: camcc-milos: Declare icc path dependency for CAMSS_TOP_GDSC
clk: qcom: gdsc: Support enabling interconnect path for power domain
dt-bindings: clock: qcom,milos-camcc: Document interconnect path
interconnect: Add devm_of_icc_get_by_index() as exported API for users
clk: qcom: camcc-x1p42100: Add support for camera clock controller
clk: qcom: camcc-x1e80100: Add support for camera QDSS debug clocks
clk: qcom: videocc-x1p42100: Add support for video clock controller
dt-bindings: clock: qcom: Add X1P42100 camera clock controller
dt-bindings: clock: qcom: Add X1P42100 video clock controller
clk: keystone: sci-clk: fix application of sizeof to pointer
clk: keystone: don't cache clock rate
clk: spacemit: k3: Add PCIe DBI clock
dt-bindings: soc: spacemit: k3: Add PCIe DBI clock IDs
clk: spacemit: k3: Fix PCIe clock register offset
clk: spacemit: k3: Switch to pll2_d6 as parent for PCIe clock
clk: at91: keep securam node alive while mapping it
clk: samsung: exynos990: Fix PERIC0/1 USI clock types
clk: renesas: r9a08g045: Drop unused pm_domain header file
...
There are a few added drivers, but mostly the normal maintenance to drivers
for firmware, memory controller and other soc specific hadware:
- The NXP QuickEngine gets modern MSI support, which allows some cleanups to
the GICv3 irqchip chip driver
- A new SoC specific driver for the Renesas R-Car MFIS unit is added,
encapsulating support for the on-chip mailbox and hwspinlock
implementations that are not easily separated into individual
drivers
- The Qualcomm SoC drivers add support for additional SoC implementations,
and flexiblity around power managedment for the serial-engine driver
as well as probing the LLCC driver using custom hardware descriptions
inside of the device itself.
- Added support for the Samsung thermal management unit
- A cleanup to the Tegra 'PMC' driver interfaces to remove legacy
APIs and allow multiple PMC instances everywhere.
- Updates to the TI SCI and KNAS drivers to improve suspend/resume
support.
- Minor driver changes for mediatek, xilinx, allwinner, aspeed, tegra,
broadcom, amd, microchip and starfive specific drivers
- Memory controller updates for Tegra and Renesas for additional SoC
types and other improvements.
- Firmware driver updates for Arm FF-A, SMCCC and SCMI interfaces,
to update driver probing, object lifetimes and address minor bugs.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmow8HMACgkQmmx57+YA
GNmV4A//WYorQo+qes020w70BAc67/CCVsYpDLDz0mWD5G/uQoQkmyqJTA/b2VnM
iBzrxJ5lGRP7xkhfDVCfb3wsMNsJV9X4QRLGB13XkXA/vRMZxBd3xKV0K/CWUJYo
0YJV/BeFDonhbIjTyeZ0ddUvkdOtqn7tua+YiVpRLL4lqV0JzwzQ1mrqKuJ1EFk0
LWw/oLf+xhcY9X6lae0kranLcR6wauGVu9FLXu2nMtGnn1ErkUfywmd8C1mZ8yLk
QCEjSNdvjXQKSAFhNhAcNPxEDFqvNqKQEXfa62i3m8rM8mX1/ZJUd49NCEQaOnXm
ZbeZVHLATf8ut6WKvAwOdtcmvY2HAvBy9xyU7mdiYw3+3hDHQWU068bqYcEbfY6O
04vhYjnvYnYCZNifH3MvsdMteILN5Eja+dNq7Li2LbnMqbSUHr4gJm0nQcbvsbs0
x42GsuqtmPy1PL4/9hlwN/eDj+Bce4O2x1ZXl8VoChGRUD1JJXzr4NGDumBv03hA
eqja4VdMWb9Z/w7y6nlXkx48DibpBJJCgotbYl6DSfJjfGX+jnYrHHcZg5BCIvUc
X1Fy6236sWBQsj1crNcm2QZ2JWJE28HRYcDq3JGDDGvWkcrkB4c1H0N/rIkO4H5F
nTW5LgJDTd/KEzq3WOKN+gcHoLjXWl0wKJpb4WQ7sdvcYUTdHx8=
=27+M
-----END PGP SIGNATURE-----
Merge tag 'soc-drivers-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull SoC driver updates from Arnd Bergmann:
"There are a few added drivers, but mostly the normal maintenance to
drivers for firmware, memory controller and other soc specific
hardware:
- The NXP QuickEngine gets modern MSI support, which allows some
cleanups to the GICv3 irqchip chip driver
- A new SoC specific driver for the Renesas R-Car MFIS unit is added,
encapsulating support for the on-chip mailbox and hwspinlock
implementations that are not easily separated into individual
drivers
- The Qualcomm SoC drivers add support for additional SoC
implementations, and flexibility around power management for the
serial-engine driver as well as probing the LLCC driver using
custom hardware descriptions inside of the device itself.
- Added support for the Samsung thermal management unit
- A cleanup to the Tegra 'PMC' driver interfaces to remove legacy
APIs and allow multiple PMC instances everywhere.
- Updates to the TI SCI and KNAS drivers to improve suspend/resume
support.
- Minor driver changes for mediatek, xilinx, allwinner, aspeed,
tegra, broadcom, amd, microchip and starfive specific drivers
- Memory controller updates for Tegra and Renesas for additional SoC
types and other improvements.
- Firmware driver updates for Arm FF-A, SMCCC and SCMI interfaces, to
update driver probing, object lifetimes and address minor bugs"
* tag 'soc-drivers-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (189 commits)
Revert "firmware: zynqmp: Add dynamic CSU register discovery and sysfs interface"
Revert "Documentation: ABI: add sysfs interface for ZynqMP CSU registers"
memory: tegra234: drop dead NULL check in tegra234_mc_icc_aggregate()
memory: tegra264: drop redundant tegra264_mc_icc_aggregate()
memory: tegra186-emc: stop borrowing MC aggregate hook for EMC
soc: aspeed: cleanup dead default for ASPEED_SOCINFO
firmware: tegra: bpmp: Add support for multi-socket platforms
firmware: tegra: bpmp: Propagate debugfs errors
soc/tegra: pmc: Add Tegra238 support
soc/tegra: pmc: Restrict power-off handler to Nexus 7
soc/tegra: pmc: Populate powergate debugfs only when needed
soc/tegra: pmc: Move legacy code behind CONFIG_ARM guard
soc/tegra: pmc: Remove unused legacy functions
soc/tegra: pmc: Create PMC context dynamically
firmware: samsung: acpm: remove compile-testing stubs
firmware: samsung: acpm: Add devm_acpm_get_by_phandle helper
firmware: samsung: acpm: Add TMU protocol support
firmware: samsung: acpm: Make acpm_ops const and access via pointer
firmware: samsung: acpm: Drop redundant _ops suffix in acpm_ops members
firmware: samsung: acpm: Annotate rx_data->cmd with __counted_by_ptr
...
This update includes:
- fix the GMAC GCLK clock ID for the SAM9X7 SoC
- properly decrement the reference count of a struct device_node
in pmc_register_ops() after it is no longer needed
- fix the MPFS peripheral driver registration failures by using the proper
size and mapping for the output clocks array
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQTsZ8eserC1pmhwqDmejrg/N2X7/QUCahxGVQAKCRCejrg/N2X7
/VrBAQCz+LjzlH0arHQ/9nHO7sNtZTdRL9OffSoXUpa3cDsp/wD+LJT7/bBedXCa
InUzF9g/iJSh5rixwbIhVBNm9ieB2A4=
=0Izd
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmotx4gUHHN3Ym95ZEBj
aHJvbWl1bS5vcmcACgkQrQKIl8bklSU7QQ//eNChi4HIGCWChEnD3DR0kevLLx+9
qafiZmsZg5D15IpLbnsji28gsJS4QcvqMKLX18DugHrVTV/DN3g1r1lsAa6Q+foK
3qlTyuZueFugVxgFx64b3QIxtjM9q9iQBXyTBXWdMJq/DTrLDnpRHRMJ6kyQ/bcr
+n5D6M0l/boOs7v9bONSy6+QgOEzeBy7enz3p0PkBJ7Ol44nLERlqYiIxP6/q46o
inlS3V7DniQueJzUHL09EQ+HPDjCceiQt+BO7NP63c/WwBl8XAKS8gGvP/87dww4
PEc5tJDkK1LPgfWqyl/8PImpBZ2Gvywlj8nVIsGNGxWqQyDVPyWjbW/twAIN4o5T
nApnsSUEUVI4WMlE8MwfpfZx2XEdZlS6OrflqjNcrPBkdFX5t2B/d8IO/+tJP8Xq
xjbD3KP3dP5K8buKaC2BqEHOCbyZkQjhrYndrK3sTEI6KAphxcTVPlAHDDtNmRAp
fomdzn9fY4ftrOmwpmDNoC3yZocpbIjpD/gBCmxz54DJc2GpIwYwTTY1xxj8qofN
TUndY2+OcUoPLZ3s5+jCgxAmPLA0+4b2BP1bg54lJer8fca/gTLvNbS83oVDWnPO
XFLG7RjD7B1lSToDdEVCl2nwgkWVk2TsI1w3mTcRPE96hfGnwFp0q9EUXNKd3mzz
qw0Us6wEQhHeWWw=
=yTjq
-----END PGP SIGNATURE-----
Merge tag 'clk-microchip-fixes-7.1' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into clk-microchip
Pull Microchip clock fixes from Claudiu Beznea:
- Fix the GMAC GCLK clock ID for the SAM9X7 SoC
- Properly decrement the reference count of a struct device_node
in pmc_register_ops() after it is no longer needed
- Fix the MPFS peripheral driver registration failures by using the proper
size and mapping for the output clocks array
[sboyd@kernel.org: These all look non-critical so not taking for
clk-fixes]
* tag 'clk-microchip-fixes-7.1' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
clk: at91: keep securam node alive while mapping it
clk: microchip: mpfs-ccc: fix peripheral driver registration failures after oob fix
clk: at91: sam9x7: Fix gmac_gclk clock definition
TI K3 TISCI:
- ti_sci: Add BOARDCFG_MANAGED mode for support system suspend/resume cycles
- ti_sci: Add support for restoring IRQ and clock contexts during resume.
- clk: keystone: sci-clk: Add clock restoration support.
SoC Drivers:
- k3-socinfo: Add support for identifying AM62P silicon variants via NVMEM,
along with corresponding dt-bindings update for nvmem-cells support
- k3-ringacc: Fix incorrect access mode for ring pop tail IO/proxy operations
Keystone Navigator (knav) Cleanup and Fixes:
- knav_qmss: Multiple code quality improvements
- knav_qmss_queue: Implement proper resource cleanup in the remove() path
General Cleanups:
- k3-ringacc: Use str_enabled_disabled() helper for consistency
- knav_qmss: Use %pe format specifier for PTR_ERR() printing
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmogRt8ACgkQ3bWEnRc2
JJ34qg/9G4HWCfLWqkNr9xgL3YW6/zSkj6CE47ZK+Ku7O6FZprmLZ8OtyrVZMNNp
MFv/51SVN++whZULMkr2FTjlK4BIVqnjo9smTs2timvBjoCIJuLRkIolWlob4aEF
V4+f7cW31bD3BgtxftWKWJSbRpnk2jRue8esAyVSl/N4E4/w+uEYhC0MU6gwuU3P
rZJJ+Am/4+8xri7sKD+9GXM8255T7wA92P3piQBeZXFC8r0oNsFvIkkkQ5kJe+K6
P84qkz2gxUdutlPRL6vAvxofqNF8GT0hGLM5nPGYf2NIaergUxl8ydtJWGw+x2Xw
QTWXqzETEqUdBSl/JUJHSCnxt793V8WDBAzu0Ka9UhtXnlcqAlTe46QfV5LWslaa
HOJknSvMF/6k+/5HBnS+TI8O2u+koQGlVTZnXoL/E035tXSXH8dFoeXUt1PixYDf
346cz40LNn7iry1HVuOKRtfX4+D+ZH0KqbelYSEUyPgXIt/d+rcUdZKWgCtjNDmg
GobjiSnsoAmTWA8HKDnLxaF62bUXIRJNlRfjIJ6oL8i4IQtnqU/d92ABYIQwMh+Z
yiwuJmkK7Qd6Lx0CraW9drIiSgYn9gEWGZW1JbJnoW72HP9hkjRjU6rkcKFxLckf
sQE/xdZu/unO2Zq2WxGAFAgVwJ6AyQlbpVu+kQHlJNdQYanpDfw=
=JSdI
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmooKk0ACgkQmmx57+YA
GNmFtg//QosIGaXc8MBeU+0o2qaoHZhOxlG8Z/QppdNQ0BazlTSGJK3q9CdwDyn1
25L93bSr75z0Lf57qvA2qw/esRMmCl2Hgf/xux42sWvielUXPs1/bN4IQmUoux/f
MZ8G2tPQnuOajep6wtMfr+cSqwUTPzItyOYBF6XTYOIjUnrBpzlEkHGNHXDEonu7
l3QJi6yOiOFl1MGyQLYJ1a6j+xBkD/2a7qmbuEXyKKL0DNMyGnqeSDDxbONVWQPE
+5Vu8k42Cadz68YpN6ZI7R2zrNl6m1QQEip7pYAjGI6ddM5Axy0PV6odh9ASM2Ur
vk8cicKbeyZ6Q5rmz33dxvSJYQYY0h5gZR0KBv6pX9sKiWIexUH07YiLJkcghD6i
s15IvcgXSfDfBd5hXnhYnL6XyZ4rfAtkW/PxaPi9vvUyakwnzR7WceEc0wMHGO3T
nYrhzNQAMfsbq0U3gMBPWlp55pAu0DGzg5ZnUU0WHFGiu7HUv1/oe1j8+eJSKSgF
5GcaQXQ0zH2J4D/ppC+jLOnOWbdTICVdryfU/9yNvB2ZMNMzU4uNSv8E6+ww3H3m
jSDuDnjRuD4P1nuI7zyC+xfSVxlOBcVYVGj623ODBxBpsZaCIBvbdcqocULIVAng
osK+Ouv1ymsKe1MU3MvpyFP8I5nNmv23bb1M8NzshndOylnGdo0=
=Xyhg
-----END PGP SIGNATURE-----
Merge tag 'ti-driver-soc-for-v7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/drivers
TI SoC driver updates for v7.2
TI K3 TISCI:
- ti_sci: Add BOARDCFG_MANAGED mode for support system suspend/resume cycles
- ti_sci: Add support for restoring IRQ and clock contexts during resume.
- clk: keystone: sci-clk: Add clock restoration support.
SoC Drivers:
- k3-socinfo: Add support for identifying AM62P silicon variants via NVMEM,
along with corresponding dt-bindings update for nvmem-cells support
- k3-ringacc: Fix incorrect access mode for ring pop tail IO/proxy operations
Keystone Navigator (knav) Cleanup and Fixes:
- knav_qmss: Multiple code quality improvements
- knav_qmss_queue: Implement proper resource cleanup in the remove() path
General Cleanups:
- k3-ringacc: Use str_enabled_disabled() helper for consistency
- knav_qmss: Use %pe format specifier for PTR_ERR() printing
* tag 'ti-driver-soc-for-v7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
firmware: ti_sci: Add support for restoring clock context during resume
clk: keystone: sci-clk: Add restore_context() operation
firmware: ti_sci: Add support for restoring IRQs during resume
firmware: ti_sci: Add BOARDCFG_MANAGED mode support
soc: ti: k3-ringacc: Use str_enabled_disabled() helper
soc: ti: knav_dma: Use IOMEM_ERR_PTR() in pktdma_get_regs()
soc: ti: knav_dma: Remove dead check on unsigned args.args[0]
soc: ti: knav_dma: Remove unused DMA_PRIO_MASK macro
soc: ti: knav_qmss_acc: Fix kernel-doc Return: tag
soc: ti: knav_qmss: Fix __iomem annotations and __be32 type
soc: ti: knav_qmss: Use %pe to print PTR_ERR()
soc: ti: knav_qmss: Fix kernel-doc Return: tags
soc: ti: knav_qmss: Inline lockdep condition in for_each_handle_rcu
soc: ti: knav_qmss: Rename global kdev to knav_qdev to fix -Wshadow
soc: ti: knav_qmss: Remove remaining redundant ENOMEM printks
soc: ti: knav_qmss_queue: Implement resource cleanup in remove()
soc: ti: k3-ringacc: Fix access mode for k3_ringacc_ring_pop_tail_io/proxy
soc: ti: knav_dma: fix all kernel-doc warnings in knav_dma.h
soc: ti: k3-socinfo: Add support for AM62P variants via NVMEM
dt-bindings: hwinfo: ti,k3-socinfo: Add nvmem-cells support
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Improve Samsung Exynos (and Google GS101) ACPM (Alive Clock and Power
Manager) firmware driver:
1. Few code improvements.
2. Add support for protocol used to communicate with Thermal Management
Unit (TMU). This will allow to implement the thermal driver working
for newer Samsung Exynos and Google GS101 SoCs.
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmocIP8QHGtyemtAa2Vy
bmVsLm9yZwAKCRDBN2bmhouD166OD/wL+DhPwi35zocDIoPQETVZ3zaqPwE+kIhC
+ssLefI5f70tYLVy1OM9fobri2PbMnQBpY8CIZNpZRsjwfWOsrl6SpBH9SQoZnb2
UNrZGxvEcGvjw208GzjM6ZJ3LkSm0o+EvjnHYK2S5ddH6iBISe2OoW21AkhGr9ko
XhCgQGrfchQDWVkLTcT+RMN4n8e8LCKz71ebTH5YwdPt3PDL/lTHpn1/3xkfJgCR
Rzp63VAmZCz6rA0WR7g8yJ+5BVAekjoBkN7/aeeaVOKpo3xRdduedpmEokIAHqBx
eP1J9MhB71+kY30+REganonp7xo42bRct+udfw5nsoWW2aNS0lGwQNxTpnsFSgLX
rh8NeXKWnWvdB61NT5r68A9ycKAvFieWGBE/KC3fqC0uEru1LxyrA1iTG88Ko1OQ
18JrqaUV+zxz17JTzDfuTuwnQp6jw6sXcrH3dv8aM3TPnWwxpa7TRwRVB4d6MIi0
ObSmP2Grswk9CmPZBby7QNFlxRPnAstGIDINEyC23Cjv+a1K3CMDMPpjL35+IAev
DhmUW4py5p97WxwBBdsH4WcxhIa+yU5Wtw+ItZM08FtCFkPajSRmLbWA2hdfTrVx
ETvBmJxDgsxZbaAUdq0tZnjpy5b2OLFFsO53G//s0e/lP8bE6fft53OyIOm0eMHw
x+S+tIStqQ==
=dgCg
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmooKHAACgkQmmx57+YA
GNljhw/9EKi+zq6o4scloxm4FmfGyLlhqSMEQsJPbLXcLP6eebXvDd580zrhjuRW
fI5W4c2ICJYidV9LhUUBLFW7Z8fcqUQv5av2GglQQVl8QWz2HBLdXGUAacJg3mB8
wcm8IIGqgArIampzKc/RFjiXJyU/l4aIwzCMz3r4RHWCxBTDQyr/fr/JqEaGz+lP
WHnmCV1uhIRYQ0rvF0Sd52K/ScMAaIk/NC6/a9i1U1YhgbSVXySWYGUZpL1lWsGr
j4CDbjMvoE+Z4Hm7qT9WXEJt+E3JLZKlL0YJi0/OsQzRmfbszbFStRc6gcdPIWeK
LDYLbDYf0D+GxQNLcQ3mhlO35EtEX/3N4IVHZJ99h+Qx1ing9hGBd/28VtrLAU+y
IiQitk7EnoSGPzaZ6CoPgNQTNCs51GWAdP55pT3CAEuZdSnAFWq5DCVJcrv60+rc
aclekR6JkSq6GsdY4CaIa+La6iLjgdWZMe6oAVREwFGKWq2zEv6HjeJvvuQ0xx8V
mTNR57hOpcYfjjwyt9l69o4CtUYntQuqU75nTh0xjZruWu7ckvRN8Ylml6Gm8CWM
M0V8cB06936Krc/kKM93RJPbnpj1jCsw9p9qYuAvXzyES2cO5lplt2tBVrs+liWq
AcmjIiOvb2opyjB81ngD0asbPO3uzeACO75coIW4JelZgPw7WCE=
=3Tlw
-----END PGP SIGNATURE-----
Merge tag 'samsung-drivers-7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/drivers
Samsung SoC drivers for v7.2
Improve Samsung Exynos (and Google GS101) ACPM (Alive Clock and Power
Manager) firmware driver:
1. Few code improvements.
2. Add support for protocol used to communicate with Thermal Management
Unit (TMU). This will allow to implement the thermal driver working
for newer Samsung Exynos and Google GS101 SoCs.
* tag 'samsung-drivers-7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
firmware: samsung: acpm: remove compile-testing stubs
firmware: samsung: acpm: Add devm_acpm_get_by_phandle helper
firmware: samsung: acpm: Add TMU protocol support
firmware: samsung: acpm: Make acpm_ops const and access via pointer
firmware: samsung: acpm: Drop redundant _ops suffix in acpm_ops members
firmware: samsung: acpm: Annotate rx_data->cmd with __counted_by_ptr
firmware: samsung: acpm: Consolidate transfer initialization helper
firmware: samsung: acpm: Fix infinite loop on sequence number exhaustion
firmware: samsung: acpm: Fix missing LKMM barriers in sequence allocator
firmware: samsung: acpm: Fix false timeouts and Use-After-Free in polling
firmware: samsung: acpm: Fix mailbox channel leak on probe error
firmware: samsung: acpm: Fix cross-thread RX length corruption
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The sole reason this hw exists is to let the branch clock downstream of
it keep running, with the PHY disengaged. This is not possible with the
current implementation, as the enabled status is hijacked to mean
"enabled" = "use fast/PHY source" and "disabled" = "use XO source".
This is an issue, since the mux enable state follows that of the child
branch, making the desired "child enabled, MUX @ XO" combination
impossible.
Solve that by implementing ratesetting. Because PHY clock rates may
change at runtime and aren't really deterministic from Linux, assume
ULONG_MAX as "fast clock" and 19.2 MHz as XO. All the branches in
question already set CLK_SET_RATE_PARENT, so everything works out.
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260409-topic-phy_fastclk-v1-1-6b4aaee56b90@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
The 1152MHz frequency entry for the a53 currently selects a multiplier of 62, giving 1190MHz. This changes the mulitiplier to 60 giving the intended 1152MHz.
Signed-off-by: Phillip Varney <pbvarney@protonmail.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Fixes: 0c6ab1b8f8 ("clk: qcom: Add A53 PLL support")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260605005502.313928-1-pbvarney@protonmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This GDSC requires an interconnect path to be enabled, otherwise the
GDSC will be stuck on 'off' and can't be enabled.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Link: https://lore.kernel.org/r/20260501-milos-camcc-icc-v2-4-bb83c1256cc3@fairphone.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
On newer SoCs like Milos the CAMSS_TOP_GDSC power domains requires the
enablement of the multimedia NoC, otherwise the GDSC will be stuck on
'off'.
Add support for getting an interconnect path as specified in the SoC
clock driver, and enabling/disabling that interconnect path when the
GDSC is being enabled/disabled.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Link: https://lore.kernel.org/r/20260501-milos-camcc-icc-v2-3-bb83c1256cc3@fairphone.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Add support for the camera clock controller for camera clients to
be able to request for camcc clocks on X1P42100 platform. Although
X1P42100 is derived from X1E80100, the camera clock controller driver
differs significantly. Few PLLs, clocks and GDSC's are removed, there
is delta in frequency tables for most RCG's and parent data structures
also changed for few RCG's. Hence introduce a separate camcc driver
for X1P42100 platform.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Taniya Das <taniya.das@oss.qualcomm.com>
Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260507-purwa-videocc-camcc-v5-5-fc3af4130282@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Add support for camera QDSS debug clocks on X1E80100 platform which
are required to be voted for camera icp and cpas usecases. This change
aligns the camcc driver to the new ABI exposed from X1E80100 camcc
bindings that supports these camcc QDSS debug clocks.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
Fixes: 76126a5129 ("clk: qcom: Add camcc clock driver for x1e80100")
Link: https://lore.kernel.org/r/20260507-purwa-videocc-camcc-v5-4-fc3af4130282@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Add support for the video clock controller for video clients to be
able to request for videocc clocks on X1P42100 platform. Although
X1P42100 is derived from X1E80100, the video clock controller differs
significantly. The BSE clocks are newly added, several cdiv clocks have
been removed, and most RCG frequency tables have been updated. Initial
PLL configurations also require changes, hence introduce a separate
videocc driver for X1P42100 platform.
Reviewed-by: Taniya Das <taniya.das@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Jagadeesh Kona <jagadeesh.kona@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260507-purwa-videocc-camcc-v5-3-fc3af4130282@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Coccinelle (scripts/coccinelle/misc/noderef.cocci) reports:
drivers/clk/keystone/sci-clk.c:391:8-14: ERROR: application of
sizeof to pointer
In sci_clk_get(), 'clk' is declared as 'struct sci_clk **', so
sizeof(clk) is sizeof(struct sci_clk **) which is the size of a
pointer rather than the size of an array element. provider->clocks
is an array of 'struct sci_clk *', so the canonical size argument
to bsearch() is sizeof(*clk) (i.e. sizeof(struct sci_clk *)).
The two values are equal on every supported architecture, so this
is correctness/idiom, not a runtime fix, but the new form matches
the rest of the bsearch() callers in the tree and silences the
Coccinelle warning the script flagged.
Reported-by: Zeal Robot <zealci@zte.com.cn>
Closes: https://lore.kernel.org/all/84a6ba16686347099a3dab2e5161a930e792eb6e.1629198281.git.jing.yangyang@zte.com.cn/
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@inria.fr>
Closes: https://lore.kernel.org/all/202512040525.zrHSDl5h-lkp@intel.com/
Link: https://lore.kernel.org/linux-clk/20211012021931.176727-1-davidcomponentone@gmail.com/
Reviewed-by: Stepan Ionichev <sozdayvek@gmail.com>
Reviewed-by: Andrew Davis <afd@ti.com>
Signed-off-by: Jing Yangyang <jing.yangyang@zte.com.cn>
Signed-off-by: David Yang <davidcomponentone@gmail.com>
[nm@ti.com: Improved commit message]
Reviewed-by: Brian Masney <bmasney@redhat.com>
Link: https://patch.msgid.link/20260512110028.2999471-1-nm@ti.com
Signed-off-by: Nishanth Menon <nm@ti.com>
The TISCI firmware will return 0 if the clock or consumer is not
enabled although there is a stored value in the firmware. IOW a call to
set rate will work but at get rate will always return 0 if the clock is
disabled.
The clk framework will try to cache the clock rate when it's requested
by a consumer. If the clock or consumer is not enabled at that point,
the cached value is 0, which is wrong. Thus, disable the cache
altogether.
Signed-off-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Reviewed-by: Randolph Sapp <rs@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Antonios Christidis <a-christidis@ti.com>
Reviewed-by: Brian Masney <bmasney@redhat.com>
Link: https://patch.msgid.link/20260507-clk-sci-v2-1-38f59b48777a@ti.com
Signed-off-by: Nishanth Menon <nm@ti.com>
pmc_register_ops() gets an owned reference to the
"atmel,sama5d2-securam" node with of_find_compatible_node(). The
success path dropped that reference before passing the node to
of_iomap(), leaving of_iomap() to consume a node pointer after the caller
had released its reference.
Move of_node_put() after of_iomap() so the node remains referenced for
the mapping operation. The unavailable-node error path already releases
the reference.
Fixes: 4d21be8640 ("clk: at91: pmc: execute suspend/resume only for backup mode")
Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://patch.msgid.link/20260529042051.1626978-1-dbgh9129@gmail.com
Signed-off-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Use nMUX() for USI and UART user muxes to allow reparenting between
OSC and CMU IP output when changing rates, and use DIV_F() with
CLK_SET_RATE_PARENT on their dividers and gates so rate requests
propagate upward.
Consolidate identical USI parent arrays into shared
mout_peric0_nonbususer_p and mout_peric1_nonbususer_p.
Signed-off-by: Denzeel Oliva <wachiturroxd150@gmail.com>
Link: https://patch.msgid.link/20260528-perics-usi-v1-1-13a6ee4d1a6f@gmail.com
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Sashiko reported an inconsistent use of NULL vs ERR_PTR()
returns in the stub helpers in xynos-acpm-protocol.h.
Since this only happens on dead code for COMPILE_TEST=y, this is not
really a bug though. Having stub functions that return NULL is a common
way to define optional interfaces, where callers still work when the
feature is disabled, though this clearly does not work for acpm because
some callers have a NULL pointer dereference when compile testing.
Since CONFIG_EXYNOS_ACPM_PROTOCOL already supports compile-testing itself,
and all (both) drivers using it clearly require the support, so this
just simplifies the option space without losing any build coverage.
Remove the stub functions entirely and adjust the one Kconfig
dependency to require EXYNOS_ACPM_PROTOCOL unconditionally.
Fixes: 6837c006d4 ("firmware: exynos-acpm: add empty method to allow compile test")
Closes: https://sashiko.dev/#/patchset/20260420-acpm-tmu-v3-0-3dc8e93f0b26%40linaro.org
Link: https://lore.kernel.org/all/a7994860-24a3-4f87-84bf-109ed653dda4@linaro.org/
Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://patch.msgid.link/20260529134454.2147446-1-arnd@kernel.org
[krzk: Rebase on difference in devm_acpm_get_by_node()]
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Replace the embedded `struct acpm_ops` inside `struct acpm_handle` with
a pointer to a `const struct acpm_ops`.
Previously, the operations structure was embedded directly within the
handle and populated dynamically at runtime via `acpm_setup_ops()`.
This resulted in mutable function pointers and unnecessary per-instance
memory overhead.
By defining `exynos_acpm_driver_ops` statically as a `const` structure,
the function pointers are now safely housed in the read-only `.rodata`
section. This improves security by preventing function pointer
overwrites, saves memory, and slightly reduces initialization overhead
in `acpm_probe()`.
Consequently, update all consumer drivers (clk, mfd) to access the
operations via the new pointer indirection (`->ops->`). Finally, fix
the previously empty kernel-doc description for the ops member to
reflect its new pointer nature.
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Reviewed-by: Peter Griffin <peter.griffin@linaro.org>
Link: https://patch.msgid.link/20260515-acpm-tmu-helpers-v2-4-8ca011d5a965@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
The parking of shared RCGs during registration parks the MDP source
clock, disabling display until the msm display driver successfully
initializes the hardware again. Mark this clock on Makena and Hamoa as
"no_init_park" to retain a working recovery console etc.
-----BEGIN PGP SIGNATURE-----
iQJCBAABCgAsFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmoVtn8OHGJqb3JuQGty
eW8uc2UACgkQCx85Pw2ZrcUbpQ//TActv7od06SYTkqfSWwm2YDSoQzex9VxD1ur
Rf/Dy3kgiC9H2XFp3uQLhbv4SuEFUChFKPyx0HVo3jo+hSnDFot8pmjUIgqmhCxK
J63UqpuiAoGrJv8X0Sxuv+f3v1WTsUs54ktQtdoxXdvFr4E/Bn59yu3eMYIOu/Ja
SqkND14pusNgS291xJ4lilxolkk5YNn9w0k7YvJlQxYW5RIaSS6YN3a7ZSE0mBxI
/CWt8+VwQxO46TT0zIbOf3TlQD7s5ohoWGZUsj4UQ9EgSlw04Fbu/SeGuaHhF63I
PtmtEon2w9W1oQxalBMV4bc4faga/bOAaY1fNwSps7YzNzs4isEXgRBEJp/NUadr
wbzlvJ8OzBVVOWuHF3rdMx2lJ3DyA/WyhN76w2ax2Gs+Zp+VC249T0CYjO05TGpT
t5CCPiyf03KeNJOMx+oLoolSqazNR6jGxN88Guy2I1b9AWGd+APD5YSyRW0ML3ij
yEqCa93zKkzDHRG1Y062c13w9ubrt7jb/KQWQtD2iUhRi8U2eq3eUXVt4PViPEuk
jjHk80byXIgXikYl+SmBtAzAyz2WKHN+8IPlCAuuMRV65MA5sgbKHGd97x8vIjGY
MXmfC5CNCzctnqkg7TTzaNYZbz+91QFWI9PhcbtdqxtWV/aQTN+GTeQ+RBiQi97R
Aqsx8gU=
=ksiP
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmoY6j4UHHN3Ym95ZEBj
aHJvbWl1bS5vcmcACgkQrQKIl8bklSVVkQ/+OuqDZ2rS1exRwSn7nrN8YWcGFNIf
hu1q5bCoEtiJnWtYzz4emdoQeusOqsUqzK44HdIc1ccKeXl939QPWDDFWdKiDO/e
x9qZBgZIuslU1wHbGstMaDKjkLcLdL/01vQIr2RC2enh16muYzWl4kSe9E/uDdX+
D4eJ15hNnhA0CqY+O38QAE+fKBFj73GL4f7OVaUfG2aHozHolk0zs4p4n4r4WeVF
JCh+1dv5wpP8BCOwKf0K5CcxjW5JD13Kw3zph2HyGvC8tiBKXdQZsOtHjeoKIJlU
A0aWpRdwQGnK8c2IwMRAvo14k/qgNO263uxCwtOWRTSnmhqyCvG1+4rhG/doe/JV
aaQchtFqsL/nbM3/TQMrlA+og2nZuHtkdz+VWX8TsaCIFRUmrHt5MxgP5SGXuST2
oXWa3k/t3G9X1LgiPsdx6TSLaW4SfGyh00i7t1SJvY7vrpylArN7WLPjHSI/5u+G
zA4BI5YtmDRdtPAkycSx9tD2g9wmsO0tvci9Fr/lKDISVcy0/BgYgQiujNI3SWgk
p3li4pF9oRZoj9I/0i481Y3Gm+wvLRqLgaSh8kks6w/qiXGE18TyslJJQUTy3JUq
BovFu/HKgm1pktpKZYMGC9EfxpFJRr2NLnCojdYEeEFnRUxp7LpyfoHlce9Ef6Jw
XIIZKMeukgOFT3A=
=6x3K
-----END PGP SIGNATURE-----
Merge tag 'qcom-clk-fixes-for-7.1' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into clk-fixes
Pull Qualcomm clk driver fixes from Bjorn Andersson:
The parking of shared RCGs during registration parks the MDP source
clock, disabling display until the msm display driver successfully
initializes the hardware again. Mark this clock on Makena and Hamoa as
"no_init_park" to retain a working recovery console etc.
* tag 'qcom-clk-fixes-for-7.1' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
clk: qcom: dispcc-sc8280xp: Don't park mdp_clk_src at registration time
clk: qcom: x1e80100-dispcc: Stop disp_cc_mdss_mdp_clk_src from getting parked
Google GS101: Correct the register name for saving and restoring state
during system suspend and resume. Lack of proper save/restore leads to
incorrect clock values after system resume.
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmoTR3EQHGtyemtAa2Vy
bmVsLm9yZwAKCRDBN2bmhouD17jtD/9wu6r261HhRvTlE0TszSD33WsTvD6nBYO3
xcIKVuUCzqi5ruCMHgVNXE2fd5mIh7b1XRx9RWfPWmptZNZG8Nl4fbmcXazloN/E
TxAWFZk4LXVUptryX4Zz8Gej1io0Fm47dvq58vvuLD1MpPag9XiTHtWiJ15PScPP
vzOoVftc8JOJbpyyQje3ijtdQ5yCF6zN9F+FvhLT2OrAEo9zpmBxhplSf5pxYVnu
ZI8Rxa9+bmU380ii1jst7cv084phaW9pyLd2xJU7V9apWqWbAxW53HqXA4xxfa2f
XKiQUyqHsbXwvevBdlf6cT0/9WmYJeUk6crzbvxvyDNiFKShEZ3paBYRkF9+Ifus
3NRpm++S2PvBJrnj3j09ex1bql207vyrGzuypImQT7f/di5HWXNkJ89caPRz4sXF
FGz+Wd8Ir1OdYLVlk4w92ylIcPDWaPKqRT1FlzC5bzFVSkRBoJ5E0VrXSeLCOkW1
s+lKuhbr8pacV8EO+OZnYynBYqdVEWYkaBR+bGhJAEedwuwGoYOAZZD5U3woghF4
ABbFqnkNIJDC+Kpxv4KRVL3IagBlsuiTAmQY6r28DCfQuH3lJh2CiYXqZ6pGS+LE
rV6Mr34mdNjxGfwRVk3LhMkxZd3zsiTR1vfzbkeXR947b9P09XIAG5K5T/Mzu3SQ
hTYfBv5meg==
=i0Pz
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQJIBAABCAAyFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAmoY6boUHHN3Ym95ZEBj
aHJvbWl1bS5vcmcACgkQrQKIl8bklSX7ohAAh5EH7oLL+h5EQJGMU92vnymtnYLi
wfAuxMmekTE49GSaHePs+N0VsTN8ZPOMPQf85KhEZ6hPHodkElJG/nms+CIOiPn0
crs8JR1Mh2J5C3mf431aWnphArIxX3+FsDk8GghpcgG5a+CoUJb2bJyrzYEw2ncY
WqnxXDJY58ymfQ2rQ3TfIwqCWShts11UHwHrWGZqDYfVcVbkKYDYoKt1W8t060DY
GnLhSAazFsT98y1SPUrnGJxyt9sj0MIHaQ+Sw5L8oMquFMwRnJ+Uf7s0qpui8Si0
KFl1PTl7Esvk3tzhBOJ/SqWFHMkZ1RGptt/NcAkVC6HwXk7B9wkO5kIPtUhmcmga
Y8HdMoTDseKkn+mEHWNGDmUzUrs5qaY+jfCBuEPtQp39WA5WFMwoWYPLnJVrqn69
lvh9S0Eic0FlKiqlSVO0+lETjR82xPUqsIgK0xTX1ueT5XzCQQd6Ciry3Kd8Mp39
Me2KEm3rdKMaXMjo8bGFvIC21MHvy6TcrJbIyxU7qYmjIow/zdOk3CgWKc+Vj34V
2+d5SWinn13GMGHkGJ4NH9qeA2dnK/APtf5uYQAzGgMdty1uHHUX8RiqnER58tzm
JfaM+0VjTToOzw32Zn6pU1R4IEdvM1E4GcbVZYLtuijEmfAT+aiOnWwFtnbWv78C
0hMC1smA657/HUA=
=3XDo
-----END PGP SIGNATURE-----
Merge tag 'samsung-clk-fixes-7.1' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into clk-fixes
Pull a Samsung clk driver fix from Krzysztof Kozlowski:
Google GS101: Correct the register name for saving and restoring state
during system suspend and resume. Lack of proper save/restore leads to
incorrect clock values after system resume.
* tag 'samsung-clk-fixes-7.1' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
clk: samsung: gs101: Fix missing USI7_USI DIV clock in peric0_clk_regs
The linux/pm_domain.h header is not used in this file. Remove it to
keep the includes clean.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260524082657.19335-1-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Implement the restore_context() operation to restore the clock rate
and the clock parent state. The clock rate is saved in sci_clk struct
during set_rate() and recalc_rate() operations. The parent index
is saved in sci_clk struct during set_parent() operation. During
clock registration, the core retrieves each clock’s parent using
get_parent() operation to ensure the internal clock tree reflects
the actual hardware state, including any configurations made by the
bootloader. So we also save the parent index in get_parent().
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Kendall Willis <k-willis@ti.com>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Reviewed-by: Brian Masney <bmasney@redhat.com>
Signed-off-by: Thomas Richard (TI) <thomas.richard@bootlin.com>
Link: https://patch.msgid.link/20260519-ti-sci-jacinto-s2r-restore-irq-v9-3-c550a8ae0f31@bootlin.com
Signed-off-by: Nishanth Menon <nm@ti.com>
The AGILEX_L3_MAIN_FREE_CLK is defined in the dt-bindings header but
was never implemented in the clock driver. Per the Agilex TRM,
l3_main_free_clk has no divider or mux and is a fixed 1:1 derivative
of noc_free_clk that clocks most of the interconnect datapath.
Signed-off-by: Adrian Ng Ho Yin <adrian.ho.yin.ng@altera.com>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
Rename the internal loop iterator variable in the for_each_mod_clock()
macro from 'i' to '__i'.
The current naming conflicts with local loop variables named 'i' inside
code blocks that utilize the macro, triggering compiler warnings due to
variable shadowing:
drivers/clk/renesas/rzg2l-cpg.c:1494:36: warning: declaration of `i` shadows a previous local [-Wshadow]
1494 | for (unsigned int i = 0; i < clk->num_shared_mstop_clks; i++)
Using a unique identifier for the macro-internal iterator resolves the
shadowing warnings globally across all macro expansions.
Fixes: 3fd4a8bb4b ("clk: renesas: rzg2l: Add macro to loop through module clocks")
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260520092947.70596-1-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
This patch provides basic support for the K230 clock, which covers
all clocks in K230 SoC.
The clock tree of the K230 SoC consists of a 24MHZ external crystal
oscillator, PLLs and an external pulse input for timerX, and their
derived clocks.
Co-developed-by: Troy Mitchell <TroyMitchell988@gmail.com>
Signed-off-by: Troy Mitchell <TroyMitchell988@gmail.com>
Signed-off-by: Xukai Wang <kingxukai@zohomail.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Rename RZG3L_PLL_STBY_OFFSET(), RZG3L_PLL_STBY_RESETB,
RZG3L_PLL_STBY_RESETB_WEN, RZG3L_PLL_MON_OFFSET(), RZG3L_PLL_MON_RESETB,
and RZG3L_PLL_MON_LOCK to their CPG_PLL_* equivalents to reflect that
these macros are not RZG3L-specific and are shared across SoCs.
Also fold CPG_PLL_MON_OFFSET() into rzg2l-cpg.c alongside the other
CPG_PLL_*_OFFSET() helpers introduced in previous patches.
No functional changes.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://patch.msgid.link/20260519141518.389670-4-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Replace the per-SoC G3S_PLL146_CONF() and G3L_PLL1467_CONF() macros with
a unified CPG_PLL_CONF(stby, setting) macro defined in rzg2l-cpg.h.
Drop the now-redundant GET_REG_SAMPLL_{CLK1, SETTING}() macros, replacing
the latter with CPG_PLL1_SETTING_OFFSET() using FIELD_GET() to extract the
offset value. Update RZG3L_PLL_{STBY,MON}_OFFSET() macros to derive
offsets directly from CPG_PLL_STBY_OFFSET().
No functional changes.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260519141518.389670-3-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Replace the PLL146_CONF() macro and its associated CPG_SAMPLL_CLK{1,2}(n)
helpers with a single CPG_SAM_PLL_CONF(stby) macro that takes the PLL
standby register offset directly.
This removes the implicit coupling between PLL index n and register layout
and eliminates the now-redundant GET_REG_SAMPLL_CLK2() macro. The RZ/V2M
PLL4 definition is also updated to use the new macro with its explicit
standby offset (0x100), removing the local PLL4_CONF define.
No functional changes.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://patch.msgid.link/20260519141518.389670-2-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Parking disp{0,1}_cc_mdss_mdp_clk_src clk broke simplefb on HUAWEI
Gaokun3, the image will stuck at grey for seconds until msm takes
over framebuffer. Use clk_rcg2_shared_no_init_park_ops to skip it.
Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
Tested-by: Jérôme de Bretagne <jerome.debretagne@gmail.com>
Fixes: 01a0a6cc8c ("clk: qcom: Park shared RCGs upon registration")
Link: https://lore.kernel.org/r/20260303150152.90685-1-mitltlatltl@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Expose the USB2 PHY reset in order to enable adding the USB nodes in DTS
for Nord.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260518-nord-clk-usb2-phy-v2-2-17a86cb307c3@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Commit 2f7ae8ab6a ("clk: microchip: mpfs-ccc: fix out of bounds
access during output registration") fixed the out of bounds access, but
it did so by packing sparse indices into a linear space. When
peripheral drivers request clocks, they obviously don't care for this
compression and use the sparse indices, and therefore try to request the
wrong clocks or clocks that don't exist.
The most straightforward fix here seems to stop being clever with the
packing and just overallocate the array.
Fixes: 2f7ae8ab6a ("clk: microchip: mpfs-ccc: fix out of bounds access during output registration")
Fixes: d39fb17276 ("clk: microchip: add PolarFire SoC fabric clock support")
Reviewed-by: Brian Masney <bmasney@redhat.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Some VRMs aren't present on all boards, so mark them as optional. This
prevents probe failures on boards where not all VRMs are present.
This resolves an issue seen on the Nothing Phone (4a) Pro (Eliza) where
probe fails due to RPMH_RF_CLK5 not being present on the board, this is
due to this device having a slightly different PMIC configuration from
the Eliza MTP.
This matches the downstream approach of marking all VRMs as optional
and makes the previous clka_optional handling redundant.
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260414-clk-rpmh-vrm-opt-v3-1-8ca21469ffbc@pm.me
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Update the peripheral clock name for ID 24 from macb0_clk to gmac_clk to
match the actual GMAC hardware block present on SAM9X7 SoCs and the
datasheet description.
Signed-off-by: Mihai Sain <mihai.sain@microchip.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Link: https://lore.kernel.org/r/20260309075329.1528-3-mihai.sain@microchip.com
[claudiu.beznea: massaged the patch description]
Signed-off-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Implement support for the ZT trace bus and ZTR trace clocks on R-Mobile
APE6.
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260502185557.93061-3-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
In the peric0_clk_regs array, the divider register offset for USI6 was
accidentally listed twice, while the divider for USI7 was omitted.
Missing this DIV register causes the USI7 clock divider setting to be
lost and reset to its hardware default value during a suspend/resume
cycle.
Replace the duplicated USI6 DIV entry with the correct USI7 DIV
register.
Fixes: 893f133a04 ("clk: samsung: gs101: add support for cmu_peric0")
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
Reviewed-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Link: https://patch.msgid.link/20260505171457.1960837-1-visitorckw@gmail.com
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
The Exynos850 APM co-processor relies on the I3C bus to communicate with
the PMIC. Currently, there is no dedicated PMIC consumer driver managing
these clocks, so the clock subsystem automatically gates them during the
initialisation. Once gated, any subsequent ACPM communication with APM
results in timeouts.
As a temporary workaround (and let's hope it doesn't become permanent),
mark both `gout_i3c_pclk` and `gout_i3c_sclk` as CLK_IS_CRITICAL ones to
prevent the clock subsystem from disabling them. This makes the ACPM
communication functional. This workaround should be reverted once a
proper ACPM PMIC driver is implemented to manage these clocks.
Cc: Sam Protsenko <semen.protsenko@linaro.org>
Cc: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Link: https://patch.msgid.link/20260430-exynos850-i3c-criticalclocks-v1-1-6e1fd8dfa21b@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
SCPI clock providers are registered for each child node in
scpi_clk_add(), but scpi_clocks_remove() unregisters the parent node on
each iteration.
of_clk_del_provider() matches providers by the node used at registration
time, so passing the parent node leaves the child providers registered.
This leaks the provider allocations and the node references held by the
clock provider core.
Pass the child node to of_clk_del_provider() so the remove path matches
the probe path.
Fixes: cd52c2a4b5 ("clk: add support for clocks provided by SCP(System Control Processor)")
Signed-off-by: Stepan Ionichev <sozdayvek@gmail.com>
Link: https://patch.msgid.link/20260513090900.5323-1-sozdayvek@gmail.com
(sudeep.holla: Updated commit title and message a bit)
Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
Add support for the global clock controller (GCC) on the
Qualcomm Hawi SoC.
Reviewed-by: Taniya Das <taniya.das@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Mike Tipton <mike.tipton@oss.qualcomm.com>
Signed-off-by: Vivek Aknurwar <vivek.aknurwar@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260506-clk-hawi-v3-7-530b538679f1@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>