The grf setting for rkpwm is only need in rk3288, other SoCs like RK3399 which also use rkpwm do not need set the grf, let's add a MACRO to make the code only for RK3288.
Change-Id: I167a4e8cf925e840d4bbbcfb1437aaed52b81477 Signed-off-by: Kever Yang <kever.y...@rock-chips.com> --- drivers/pwm/rk_pwm.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/pwm/rk_pwm.c b/drivers/pwm/rk_pwm.c index 2d289a4..e34adf0 100644 --- a/drivers/pwm/rk_pwm.c +++ b/drivers/pwm/rk_pwm.c @@ -13,8 +13,10 @@ #include <syscon.h> #include <asm/io.h> #include <asm/arch/clock.h> +#ifdef CONFIG_ROCKCHIP_RK3288 #include <asm/arch/cru_rk3288.h> #include <asm/arch/grf_rk3288.h> +#endif #include <asm/arch/pwm.h> #include <power/regulator.h> @@ -22,7 +24,9 @@ DECLARE_GLOBAL_DATA_PTR; struct rk_pwm_priv { struct rk3288_pwm *regs; +#ifdef CONFIG_ROCKCHIP_RK3288 struct rk3288_grf *grf; +#endif }; static int rk_pwm_set_config(struct udevice *dev, uint channel, uint period_ns, @@ -65,19 +69,23 @@ static int rk_pwm_ofdata_to_platdata(struct udevice *dev) struct regmap *map; priv->regs = (struct rk3288_pwm *)dev_get_addr(dev); +#ifdef CONFIG_ROCKCHIP_RK3288 map = syscon_get_regmap_by_driver_data(ROCKCHIP_SYSCON_GRF); if (IS_ERR(map)) return PTR_ERR(map); priv->grf = regmap_get_range(map, 0); +#endif return 0; } static int rk_pwm_probe(struct udevice *dev) { +#ifdef CONFIG_ROCKCHIP_RK3288 struct rk_pwm_priv *priv = dev_get_priv(dev); rk_setreg(&priv->grf->soc_con2, 1 << 0); +#endif return 0; } -- 1.9.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot