[PATCH V4 2/6] phy: freescale: add Samsung HDMI PHY

Luca Ceresoli luca.ceresoli at bootlin.com
Wed Feb 14 03:14:48 PST 2024


On Sat, 10 Feb 2024 14:45:58 -0600
Adam Ford <aford173 at gmail.com> wrote:

> From: Lucas Stach <l.stach at pengutronix.de>
> 
> This adds the driver for the Samsung HDMI PHY found on the
> i.MX8MP SoC. Based on downstream implementation from
> Sandor Yu <Sandor.yu at nxp.com>.  According to the TRM, the PHY
> receives parallel data from the link and serializes it.  It
> also sets the PLL clock needed for the TX serializer.
> 
> Tested-by: Luca Ceresoli <luca.ceresoli at bootlin.com> (v2)
> Tested-by: Richard Leitner <richard.leitner at skidata.com> (v2)
> Co-developed-by: Marco Felsch <m.felsch at pengutronix.de>
> Signed-off-by: Marco Felsch <m.felsch at pengutronix.de>
> Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> Tested-by: Alexander Stein <alexander.stein at ew.tq-group.com>
> Tested-by: Frieder Schrempf <frieder.schrempf at kontron.de> # Kontron BL
> Tested-by: Luca Ceresoli <luca.ceresoli at bootlin.com>
> Signed-off-by: Adam Ford <aford173 at gmail.com>

[...]

> +static int phy_clk_register(struct fsl_samsung_hdmi_phy *phy)
> +{
> +	struct device *dev = phy->dev;
> +	struct device_node *np = dev->of_node;
> +	struct clk_init_data init;
> +	const char *parent_name;
> +	struct clk *phyclk;
> +	int ret;
> +
> +	parent_name = __clk_get_name(phy->refclk);
> +
> +	init.parent_names = &parent_name;
> +	init.num_parents = 1;
> +	init.flags = 0;
> +	init.name = "hdmi_pclk";
> +	init.ops = &phy_clk_ops;
> +
> +	phy->hw.init = &init;
> +
> +	phyclk = devm_clk_register(dev, &phy->hw);
> +	if (IS_ERR(phyclk))
> +		return dev_err_probe(dev, PTR_ERR(phyclk),
> +				     "failed to register clock\n");
> +
> +	ret = of_clk_add_provider(np, of_clk_src_simple_get, phyclk);

As per my v8 review, this function is deprecated:
https://elixir.bootlin.com/linux/v6.8-rc4/source/drivers/clk/clk.c#L4881

However:

[Tested using Avnet MSC SM2S-IMX8PLUS SoM on Avnet MSC SM2-MB-EP1]
Tested-by: Luca Ceresoli <luca.ceresoli at bootlin.com>

Luca

-- 
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



More information about the linux-arm-kernel mailing list