Message ID | 20240106160221.4183409-7-paul.elder@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v5,01/10] media: rkisp1: Add and use rkisp1_has_feature() macro | expand |
On 06/01/2024 18:02, Paul Elder wrote: > Add match data to the rkisp1 driver to match the i.MX8MP ISP. > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > Reviewed-by: Rob Herring <robh@kernel.org> > Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> > Tested-by: Adam Ford <aford173@gmail.com> > --- > .../platform/rockchip/rkisp1/rkisp1-dev.c | 23 +++++++++++++++++++ > include/uapi/linux/rkisp1-config.h | 2 ++ > 2 files changed, 25 insertions(+) Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Tomi > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c > index e79fbd4d7e44..29a8249852d4 100644 > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c > @@ -532,6 +532,25 @@ static const struct rkisp1_info rk3399_isp_info = { > | RKISP1_FEATURE_DUAL_CROP, > }; > > +static const char * const imx8mp_isp_clks[] = { > + "isp", > + "hclk", > + "aclk", > +}; > + > +static const struct rkisp1_isr_data imx8mp_isp_isrs[] = { > + { NULL, rkisp1_isr, BIT(RKISP1_IRQ_ISP) | BIT(RKISP1_IRQ_MI) }, > +}; > + > +static const struct rkisp1_info imx8mp_isp_info = { > + .clks = imx8mp_isp_clks, > + .clk_size = ARRAY_SIZE(imx8mp_isp_clks), > + .isrs = imx8mp_isp_isrs, > + .isr_size = ARRAY_SIZE(imx8mp_isp_isrs), > + .isp_ver = IMX8MP_V10, > + .features = RKISP1_FEATURE_MAIN_STRIDE, > +}; > + > static const struct of_device_id rkisp1_of_match[] = { > { > .compatible = "rockchip,px30-cif-isp", > @@ -541,6 +560,10 @@ static const struct of_device_id rkisp1_of_match[] = { > .compatible = "rockchip,rk3399-cif-isp", > .data = &rk3399_isp_info, > }, > + { > + .compatible = "fsl,imx8mp-isp", > + .data = &imx8mp_isp_info, > + }, > {}, > }; > MODULE_DEVICE_TABLE(of, rkisp1_of_match); > diff --git a/include/uapi/linux/rkisp1-config.h b/include/uapi/linux/rkisp1-config.h > index 730673ecc63d..f602442c2018 100644 > --- a/include/uapi/linux/rkisp1-config.h > +++ b/include/uapi/linux/rkisp1-config.h > @@ -179,12 +179,14 @@ > * @RKISP1_V11: declared in the original vendor code, but not used > * @RKISP1_V12: used at least in rk3326 and px30 > * @RKISP1_V13: used at least in rk1808 > + * @IMX8MP_V10: used in at least imx8mp > */ > enum rkisp1_cif_isp_version { > RKISP1_V10 = 10, > RKISP1_V11, > RKISP1_V12, > RKISP1_V13, > + IMX8MP_V10, > }; > > enum rkisp1_cif_isp_histogram_mode {
diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c index e79fbd4d7e44..29a8249852d4 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c @@ -532,6 +532,25 @@ static const struct rkisp1_info rk3399_isp_info = { | RKISP1_FEATURE_DUAL_CROP, }; +static const char * const imx8mp_isp_clks[] = { + "isp", + "hclk", + "aclk", +}; + +static const struct rkisp1_isr_data imx8mp_isp_isrs[] = { + { NULL, rkisp1_isr, BIT(RKISP1_IRQ_ISP) | BIT(RKISP1_IRQ_MI) }, +}; + +static const struct rkisp1_info imx8mp_isp_info = { + .clks = imx8mp_isp_clks, + .clk_size = ARRAY_SIZE(imx8mp_isp_clks), + .isrs = imx8mp_isp_isrs, + .isr_size = ARRAY_SIZE(imx8mp_isp_isrs), + .isp_ver = IMX8MP_V10, + .features = RKISP1_FEATURE_MAIN_STRIDE, +}; + static const struct of_device_id rkisp1_of_match[] = { { .compatible = "rockchip,px30-cif-isp", @@ -541,6 +560,10 @@ static const struct of_device_id rkisp1_of_match[] = { .compatible = "rockchip,rk3399-cif-isp", .data = &rk3399_isp_info, }, + { + .compatible = "fsl,imx8mp-isp", + .data = &imx8mp_isp_info, + }, {}, }; MODULE_DEVICE_TABLE(of, rkisp1_of_match); diff --git a/include/uapi/linux/rkisp1-config.h b/include/uapi/linux/rkisp1-config.h index 730673ecc63d..f602442c2018 100644 --- a/include/uapi/linux/rkisp1-config.h +++ b/include/uapi/linux/rkisp1-config.h @@ -179,12 +179,14 @@ * @RKISP1_V11: declared in the original vendor code, but not used * @RKISP1_V12: used at least in rk3326 and px30 * @RKISP1_V13: used at least in rk1808 + * @IMX8MP_V10: used in at least imx8mp */ enum rkisp1_cif_isp_version { RKISP1_V10 = 10, RKISP1_V11, RKISP1_V12, RKISP1_V13, + IMX8MP_V10, }; enum rkisp1_cif_isp_histogram_mode {