diff --git a/arch/arm64/boot/dts/rockchip/rk3588-nvr.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-nvr.dtsi index fc3f759b646f..612b466cebed 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588-nvr.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3588-nvr.dtsi @@ -130,7 +130,7 @@ }; &display_subsystem { - clocks = <&hdptxphy_hdmi_clk0>, <&hdptxphy_hdmi_clk1>; + clocks = <&hdptxphy_hdmi0>, <&hdptxphy_hdmi0>; clock-names = "hdmi0_phy_pll", "hdmi1_phy_pll"; }; @@ -149,14 +149,6 @@ status = "okay"; }; -&hdptxphy_hdmi_clk0 { - status = "okay"; -}; - -&hdptxphy_hdmi_clk1 { - status = "okay"; -}; - &iep { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3588.dtsi b/arch/arm64/boot/dts/rockchip/rk3588.dtsi index fa4a7e35099e..c75f3d6dcf10 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3588.dtsi @@ -377,7 +377,7 @@ <&cru DCLK_VOP2>, <&cru DCLK_VOP3>, <&hclk_vo1>, - <&hdptxphy_hdmi_clk1>; + <&hdptxphy_hdmi1>; clock-names = "pclk", "hpd", "earc", @@ -769,6 +769,8 @@ reg = <0x0 0xfed70000 0x0 0x2000>; clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX1>; clock-names = "ref", "apb"; + clock-output-names = "clk_hdmiphy_pixel1"; + #clock-cells = <0>; resets = <&cru SRST_HDPTX1>, <&cru SRST_P_HDPTX1>, <&cru SRST_HDPTX1_INIT>, <&cru SRST_HDPTX1_CMN>, <&cru SRST_HDPTX1_LANE>, <&cru SRST_HDPTX1_ROPLL>, @@ -778,11 +780,6 @@ rockchip,grf = <&hdptxphy1_grf>; #phy-cells = <0>; status = "disabled"; - - hdptxphy_hdmi_clk1: clk-port { - #clock-cells = <0>; - status = "okay"; - }; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi index c154a3a03f0a..81bb417def49 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi @@ -5102,7 +5102,7 @@ <&cru DCLK_VOP2>, <&cru DCLK_VOP3>, <&hclk_vo1>, - <&hdptxphy_hdmi_clk0>; + <&hdptxphy_hdmi0>; clock-names = "pclk", "hpd", "earc", @@ -6720,6 +6720,8 @@ reg = <0x0 0xfed60000 0x0 0x2000>; clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX0>; clock-names = "ref", "apb"; + clock-output-names = "clk_hdmiphy_pixel0"; + #clock-cells = <0>; resets = <&cru SRST_HDPTX0>, <&cru SRST_P_HDPTX0>, <&cru SRST_HDPTX0_INIT>, <&cru SRST_HDPTX0_CMN>, <&cru SRST_HDPTX0_LANE>, <&cru SRST_HDPTX0_ROPLL>, @@ -6729,11 +6731,6 @@ rockchip,grf = <&hdptxphy0_grf>; #phy-cells = <0>; status = "disabled"; - - hdptxphy_hdmi_clk0: clk-port { - #clock-cells = <0>; - status = "okay"; - }; }; usbdp_phy0: phy@fed80000 { diff --git a/drivers/phy/rockchip/phy-rockchip-samsung-hdptx-hdmi.c b/drivers/phy/rockchip/phy-rockchip-samsung-hdptx-hdmi.c index 15f361facdf3..b414bf8747d7 100644 --- a/drivers/phy/rockchip/phy-rockchip-samsung-hdptx-hdmi.c +++ b/drivers/phy/rockchip/phy-rockchip-samsung-hdptx-hdmi.c @@ -2151,21 +2151,11 @@ static int rockchip_hdptx_phy_clk_register(struct rockchip_hdptx_phy *hdptx) { struct device *dev = hdptx->dev; struct device_node *np = dev->of_node; - struct device_node *clk_np; - struct platform_device *pdev; struct clk_init_data init = {}; struct clk *refclk; const char *parent_name; int ret; - clk_np = of_get_child_by_name(np, "clk-port"); - if (!clk_np) - return 0; - - pdev = of_platform_device_create(clk_np, NULL, dev); - if (!pdev) - return 0; - refclk = devm_clk_get(dev, "ref"); if (IS_ERR(refclk)) { dev_err(dev, "failed to get ref clock\n"); @@ -2177,10 +2167,6 @@ static int rockchip_hdptx_phy_clk_register(struct rockchip_hdptx_phy *hdptx) init.parent_names = &parent_name; init.num_parents = 1; init.flags = CLK_GET_RATE_NOCACHE; - if (!hdptx->id) - init.name = "clk_hdmiphy_pixel0"; - else - init.name = "clk_hdmiphy_pixel1"; init.ops = &hdptx_phy_clk_ops; /* optional override of the clock name */ @@ -2188,14 +2174,14 @@ static int rockchip_hdptx_phy_clk_register(struct rockchip_hdptx_phy *hdptx) hdptx->hw.init = &init; - hdptx->dclk = devm_clk_register(&pdev->dev, &hdptx->hw); + hdptx->dclk = devm_clk_register(hdptx->dev, &hdptx->hw); if (IS_ERR(hdptx->dclk)) { ret = PTR_ERR(hdptx->dclk); dev_err(dev, "failed to register clock: %d\n", ret); return ret; } - ret = of_clk_add_provider(clk_np, of_clk_src_simple_get, hdptx->dclk); + ret = of_clk_add_provider(np, of_clk_src_simple_get, hdptx->dclk); if (ret) { dev_err(dev, "failed to register OF clock provider: %d\n", ret); return ret; diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index f3e98005038f..55dafde400df 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -1924,6 +1924,8 @@ static struct regulator *create_regulator(struct regulator_dev *rdev, if (err != -EEXIST) regulator->debugfs = debugfs_create_dir(supply_name, rdev->debugfs); + else + regulator->debugfs = ERR_PTR(err); if (IS_ERR(regulator->debugfs)) rdev_dbg(rdev, "Failed to create debugfs directory\n");