[PATCH v5 5/8] phy: rockchip-samsung-dcphy: Add a second PHY for the receiver

Krzysztof Kozlowski krzk at kernel.org
Sat Oct 17 10:24:29 PDT 2026


On Fri, Oct 16, 2026 at 04:56:39PM +0800, Jason Yang wrote:
  static const struct phy_ops samsung_mipi_dcphy_tx_ops = {
>  	.configure = samsung_mipi_dcphy_tx_configure,
>  	.power_on  = samsung_mipi_dcphy_tx_power_on,
> @@ -1520,6 +1538,15 @@ static const struct phy_ops samsung_mipi_dcphy_tx_ops = {
>  	.owner	   = THIS_MODULE,
>  };
>  
> +static const struct phy_ops samsung_mipi_dcphy_rx_ops = {
> +	.configure = samsung_mipi_dcphy_rx_configure,
> +	.power_on  = samsung_mipi_dcphy_rx_power_on,
> +	.power_off = samsung_mipi_dcphy_rx_power_off,
> +	.init = samsung_mipi_dcphy_init,
> +	.exit = samsung_mipi_dcphy_exit,
> +	.owner	   = THIS_MODULE,
> +};
> +
>  static const struct regmap_config samsung_mipi_dcphy_regmap_config = {
>  	.name = "dcphy",
>  	.reg_bits = 32,
> @@ -1532,19 +1559,42 @@ static struct phy *samsung_mipi_dcphy_xlate(struct device *dev,
>  					    const struct of_phandle_args *args)
>  {
>  	struct samsung_mipi_dcphy *samsung = dev_get_drvdata(dev);
> +	/* Device trees without the second cell describe the transmitter. */
> +	u32 direction = PHY_DIRECTION_TX;
> +	u32 type;
>  
> -	if (args->args_count != 1) {

So this is the part which prevents change in the ABI (see Rob's comment).

Why was the driver coded that way?

> +	if (args->args_count < 1 || args->args_count > 2) {

And you repeat the pattern, so if third argument is added, DTS does not
work with existing kernel.

Why?

Best regards,
Krzysztof




More information about the Linux-rockchip mailing list