diff --git a/drivers/iio/adc/rockchip-flexbus-adc.c b/drivers/iio/adc/rockchip-flexbus-adc.c index d35631970286..092d3b4567e0 100644 --- a/drivers/iio/adc/rockchip-flexbus-adc.c +++ b/drivers/iio/adc/rockchip-flexbus-adc.c @@ -340,8 +340,7 @@ static int rockchip_flexbus_adc_probe(struct platform_device *pdev) platform_set_drvdata(pdev, rkfb_adc); rkfb_adc->dev = &pdev->dev; rkfb_adc->rkfb = rkfb; - rkfb->fb1_data = rkfb_adc; - rkfb->fb1_isr = rockchip_flexbus_adc_isr; + rockchip_flexbus_set_fb1(rkfb, rkfb_adc, rockchip_flexbus_adc_isr); ret = rockchip_flexbus_adc_parse_dt(rkfb_adc); if (ret != 0) diff --git a/drivers/iio/dac/rockchip-flexbus-dac.c b/drivers/iio/dac/rockchip-flexbus-dac.c index 1057bb820efb..eb60114c8fef 100644 --- a/drivers/iio/dac/rockchip-flexbus-dac.c +++ b/drivers/iio/dac/rockchip-flexbus-dac.c @@ -358,8 +358,7 @@ static int rockchip_flexbus_dac_probe(struct platform_device *pdev) platform_set_drvdata(pdev, rkfb_dac); rkfb_dac->dev = &pdev->dev; rkfb_dac->rkfb = rkfb; - rkfb->fb0_data = rkfb_dac; - rkfb->fb0_isr = rockchip_flexbus_dac_isr; + rockchip_flexbus_set_fb0(rkfb, rkfb_dac, rockchip_flexbus_dac_isr); ret = rockchip_flexbus_dac_parse_dt(rkfb_dac); if (ret != 0) diff --git a/drivers/media/platform/rockchip/flexbus_cif/dev.c b/drivers/media/platform/rockchip/flexbus_cif/dev.c index 9bbd93a6aa66..63e1def01820 100644 --- a/drivers/media/platform/rockchip/flexbus_cif/dev.c +++ b/drivers/media/platform/rockchip/flexbus_cif/dev.c @@ -568,8 +568,7 @@ static int flexbus_cif_plat_probe(struct platform_device *pdev) return ret; cif_dev->fb_dev = rkfb; - rkfb->fb1_data = cif_dev; - rkfb->fb1_isr = flexbus_cif_irq_handler; + rockchip_flexbus_set_fb1(rkfb, cif_dev, flexbus_cif_irq_handler); if (flexbus_cif_proc_init(cif_dev)) dev_warn(dev, "dev:%s create proc failed\n", dev_name(dev)); diff --git a/drivers/spi/spi-rockchip-flexbus-fspi.c b/drivers/spi/spi-rockchip-flexbus-fspi.c index 8a46e079f819..22b12fa6dcfb 100644 --- a/drivers/spi/spi-rockchip-flexbus-fspi.c +++ b/drivers/spi/spi-rockchip-flexbus-fspi.c @@ -695,8 +695,7 @@ static int rk_flexbus_fspi_probe(struct platform_device *pdev) fspi->master = master; fspi->fb = flexbus_dev; - flexbus_dev->fb0_data = fspi; - flexbus_dev->fb0_isr = rk_flexbus_fspi_irq_handler; + rockchip_flexbus_set_fb0(flexbus_dev, fspi, rk_flexbus_fspi_irq_handler); if (has_acpi_companion(&pdev->dev)) { ret = device_property_read_u32(&pdev->dev, "clock-frequency", &val); diff --git a/include/linux/mfd/rockchip-flexbus.h b/include/linux/mfd/rockchip-flexbus.h index e2c23c7cbb25..962fa9b42ced 100644 --- a/include/linux/mfd/rockchip-flexbus.h +++ b/include/linux/mfd/rockchip-flexbus.h @@ -147,6 +147,20 @@ struct rockchip_flexbus { const struct rockchip_flexbus_config *config; }; +static inline void rockchip_flexbus_set_fb0(struct rockchip_flexbus *rkfb, void *fb0_data, + void (*fb0_isr)(struct rockchip_flexbus *rkfb, u32 isr)) +{ + rkfb->fb0_data = fb0_data; + rkfb->fb0_isr = fb0_isr; +} + +static inline void rockchip_flexbus_set_fb1(struct rockchip_flexbus *rkfb, void *fb1_data, + void (*fb1_isr)(struct rockchip_flexbus *rkfb, u32 isr)) +{ + rkfb->fb1_data = fb1_data; + rkfb->fb1_isr = fb1_isr; +} + unsigned int rockchip_flexbus_readl(struct rockchip_flexbus *rkfb, unsigned int reg); void rockchip_flexbus_writel(struct rockchip_flexbus *rkfb, unsigned int reg, unsigned int val); void rockchip_flexbus_clrbits(struct rockchip_flexbus *rkfb, unsigned int reg,