linux/drivers/phy
Maxime Ripard 36c1dfea91 phy: ti: am654-serdes: Add a determine_rate hook
The TI AM654 SerDes clock implements a mux with a set_parent
hook, but doesn't provide a determine_rate implementation.

This is a bit odd, since set_parent() is there to, as its name implies,
change the parent of a clock. However, the most likely candidate to
trigger that parent change is a call to clk_set_rate(), with
determine_rate() figuring out which parent is the best suited for a
given rate.

The other trigger would be a call to clk_set_parent(), but it's far less
used, and it doesn't look like there's any obvious user for that clock.

So, the set_parent hook is effectively unused, possibly because of an
oversight. However, it could also be an explicit decision by the
original author to avoid any reparenting but through an explicit call to
clk_set_parent().

The latter case would be equivalent to setting the flag
CLK_SET_RATE_NO_REPARENT, together with setting our determine_rate hook
to __clk_mux_determine_rate(). Indeed, if no determine_rate
implementation is provided, clk_round_rate() (through
clk_core_round_rate_nolock()) will call itself on the parent if
CLK_SET_RATE_PARENT is set, and will not change the clock rate
otherwise.

And if it was an oversight, then we are at least explicit about our
behavior now and it can be further refined down the line.

Since the CLK_SET_RATE_NO_REPARENT flag was already set though, it seems
unlikely.

Cc: Kishon Vijay Abraham I <kishon@kernel.org>
Cc: Vinod Koul <vkoul@kernel.org>
Cc: linux-phy@lists.infradead.org
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20221018-clk-range-checks-fixes-v4-43-971d5077e7d2@cerno.tech
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
2023-06-08 18:39:31 -07:00
..
allwinner phy: Use of_property_present() for testing DT property presence 2023-03-20 18:14:58 +05:30
amlogic phy: dphy: Use devm_platform_ioremap_resource() 2023-03-31 19:19:47 +05:30
broadcom phy: Use of_property_present() for testing DT property presence 2023-03-20 18:14:58 +05:30
cadence phy: cadence: torrent: Add a determine_rate hook 2023-06-08 18:39:31 -07:00
freescale phy: freescale: phy-fsl-imx8qm-lvds-phy: Convert to platform remove callback returning void 2023-03-20 18:14:56 +05:30
hisilicon phy: HiSilicon: Fix copy and paste bug in error handling 2021-11-23 10:42:13 +05:30
ingenic phy: ingenic: Fix a typo in ingenic_usb_phy_probe() 2021-03-30 23:35:17 +05:30
intel phy-for-6.4 2023-05-03 11:17:34 -07:00
lantiq phy: lantiq: rcu-usb2: wait after clock enable 2021-01-13 19:29:03 +05:30
marvell phy: marvell: drop of_match_ptr for ID table 2023-03-20 18:14:59 +05:30
mediatek phy: mediatek: hdmi: mt8195: fix wrong pll calculus 2023-05-04 23:12:11 +05:30
microchip phy-for-6.1 2022-10-07 16:03:01 -07:00
motorola phy: motorola: phy-mapphone-mdm6600: Convert to platform remove callback returning void 2023-03-20 18:14:56 +05:30
mscc phy: phy-ocelot-serdes: add ability to be used in a non-syscon configuration 2023-03-20 09:08:48 +00:00
qualcomm phy: qualcomm: phy-qcom-qmp-ufs: add definitions for sa8775p 2023-04-12 21:45:29 +05:30
ralink phy: ralink: mt7621-pci: add sentinel to quirks table 2022-11-05 13:01:25 +05:30
renesas phy: renesas: r8a779f0-ether-serdes: Convert to platform remove callback returning void 2023-03-20 18:14:57 +05:30
rockchip phy: rockchip: remove unused hw_to_inno function 2023-04-12 21:47:50 +05:30
samsung phy: samsung,mipi-video-phy: deprecate syscon phandle 2023-02-03 20:21:26 +01:00
socionext phy: uniphier-usb3ss: fix unintended writing zeros to PHY register 2021-12-24 10:06:38 +05:30
st phy: stm32-usphyc: add 200 to 300 us delay to fix timeout on some machines 2023-03-31 18:59:16 +05:30
sunplus phy: usb: sunplus: Fix potential null-ptr-deref in sp_usb_phy_probe() 2023-01-12 23:43:35 +05:30
tegra phy: tegra: xusb: Add missing tegra_xusb_port_unregister for usb2_port and ulpi_port 2023-04-12 21:51:42 +05:30
ti phy: ti: am654-serdes: Add a determine_rate hook 2023-06-08 18:39:31 -07:00
xilinx phy: xilinx: phy-zynqmp: mention SGMII as supported protocol 2023-03-31 19:08:48 +05:30
Kconfig phy: xgene: Depend on ARCH_XGENE rather than plain arm64 2023-03-20 18:14:59 +05:30
Makefile phy: usb: Add USB2.0 phy driver for Sunplus SP7021 2022-09-02 21:01:24 +05:30
phy-can-transceiver.c phy: fixes for 6.2 2023-02-14 19:25:45 +05:30
phy-core-mipi-dphy.c phy: dphy: add support to calculate the timing based on hs_clk_rate 2022-10-27 14:38:04 +03:00
phy-core.c driver core: class: remove module * from class_create() 2023-03-17 15:16:33 +01:00
phy-lgm-usb.c phy: phy-lgm-usb: Convert to platform remove callback returning void 2023-03-20 18:14:56 +05:30
phy-lpc18xx-usb-otg.c
phy-pistachio-usb.c
phy-xgene.c phy: phy-xgene.c: Fix alignment of comment 2021-05-31 14:08:55 +05:30