From c3aad6f65b3fb574e1a73c686d8793dee00c5819 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sun, 17 Jul 2016 15:23:17 -0600 Subject: [PATCH] rockchip: Use rockchip_get_clk() to obtain the SoC clock The current code picks the first available clock. In U-Boot proper this is the oscillator device, not the SoC clock device. As a result the HDMI display does not work. Fix this by calling rockchip_get_clk() instead. Fixes: 135aa950 (clk: convert API to match reset/mailbox style) Signed-off-by: Simon Glass Acked-by: Anatolij Gustschin --- arch/arm/mach-rockchip/board.c | 2 +- arch/arm/mach-rockchip/rk3288-board-spl.c | 2 +- arch/arm/mach-rockchip/rk3288/sdram_rk3288.c | 2 +- drivers/clk/clk_rk3288.c | 2 +- drivers/video/rockchip/rk_vop.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/arm/mach-rockchip/board.c b/arch/arm/mach-rockchip/board.c index f662b26938..bec756d7ac 100644 --- a/arch/arm/mach-rockchip/board.c +++ b/arch/arm/mach-rockchip/board.c @@ -178,7 +178,7 @@ static int do_clock(cmd_tbl_t *cmdtp, int flag, int argc, int ret, i; struct udevice *dev; - ret = uclass_get_device(UCLASS_CLK, 0, &dev); + ret = rockchip_get_clk(&dev); if (ret) { printf("clk-uclass not found\n"); return 0; diff --git a/arch/arm/mach-rockchip/rk3288-board-spl.c b/arch/arm/mach-rockchip/rk3288-board-spl.c index d82115fbfa..ed14023021 100644 --- a/arch/arm/mach-rockchip/rk3288-board-spl.c +++ b/arch/arm/mach-rockchip/rk3288-board-spl.c @@ -187,7 +187,7 @@ void board_init_f(ulong dummy) rockchip_timer_init(); configure_l2ctlr(); - ret = uclass_get_device(UCLASS_CLK, 0, &dev); + ret = rockchip_get_clk(&dev); if (ret) { debug("CLK init failed: %d\n", ret); return; diff --git a/arch/arm/mach-rockchip/rk3288/sdram_rk3288.c b/arch/arm/mach-rockchip/rk3288/sdram_rk3288.c index fc0f2f33bd..4364d5a504 100644 --- a/arch/arm/mach-rockchip/rk3288/sdram_rk3288.c +++ b/arch/arm/mach-rockchip/rk3288/sdram_rk3288.c @@ -923,7 +923,7 @@ static int rk3288_dmc_probe(struct udevice *dev) priv->chan[1].pctl = regmap_get_range(plat->map, 2); priv->chan[1].publ = regmap_get_range(plat->map, 3); #endif - ret = uclass_get_device(UCLASS_CLK, 0, &dev_clk); + ret = rockchip_get_clk(&dev_clk); if (ret) return ret; priv->ddr_clk.id = CLK_DDR; diff --git a/drivers/clk/clk_rk3288.c b/drivers/clk/clk_rk3288.c index a41cf8b9f8..e00feb0809 100644 --- a/drivers/clk/clk_rk3288.c +++ b/drivers/clk/clk_rk3288.c @@ -145,7 +145,7 @@ void *rockchip_get_cru(void) struct udevice *dev; int ret; - ret = uclass_get_device(UCLASS_CLK, 0, &dev); + ret = rockchip_get_clk(&dev); if (ret) return ERR_PTR(ret); diff --git a/drivers/video/rockchip/rk_vop.c b/drivers/video/rockchip/rk_vop.c index cc26f1956d..c6d88d9225 100644 --- a/drivers/video/rockchip/rk_vop.c +++ b/drivers/video/rockchip/rk_vop.c @@ -238,7 +238,7 @@ int rk_display_init(struct udevice *dev, ulong fbbase, return ret; } - ret = uclass_get_device(UCLASS_CLK, 0, &dev_clk); + ret = rockchip_get_clk(&dev_clk); if (!ret) { clk.id = DCLK_VOP0 + remote_vop_id; ret = clk_request(dev_clk, &clk); -- 2.25.1