[v5,06/10] media: rkisp1: Add match data for i.MX8MP ISP
Commit Message
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(+)
Comments
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 {
@@ -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);
@@ -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 {