Re: [PATCH v3 10/10] media: rockchip: rkisp1: add support for px30 isp version

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 16.06.21 01:50, Heiko Stuebner wrote:
From: Heiko Stuebner <heiko.stuebner@xxxxxxxxxxxxxxxxxxxxx>

The px30 uses a V12 isp block so add compatible and matchdata
for it.

Signed-off-by: Heiko Stuebner <heiko.stuebner@xxxxxxxxxxxxxxxxxxxxx>
---
  .../media/platform/rockchip/rkisp1/rkisp1-dev.c | 17 +++++++++++++++++
  1 file changed, 17 insertions(+)

diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
index ddc05189c62a..6e4c0710f3a3 100644
--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
@@ -398,6 +398,19 @@ static irqreturn_t rkisp1_isr(int irq, void *ctx)
  	return IRQ_HANDLED;
  }
+static const char * const px30_isp_clks[] = {
+	"isp",
+	"aclk",
+	"hclk",
+	"pclk",
+};
+
+static const struct rkisp1_match_data px30_isp_match_data = {
+	.clks = px30_isp_clks,
+	.size = ARRAY_SIZE(px30_isp_clks),
+	.isp_ver = RKISP1_V12,
+};
+
  static const char * const rk3399_isp_clks[] = {
  	"isp",
  	"aclk",
@@ -411,6 +424,10 @@ static const struct rkisp1_match_data rk3399_isp_match_data = {
  };
static const struct of_device_id rkisp1_of_match[] = {
+	{
+		.compatible = "rockchip,px30-cif-isp",
+		.data = &px30_isp_match_data,
+	},
  	{
  		.compatible = "rockchip,rk3399-cif-isp",
  		.data = &rk3399_isp_match_data,


Hi, in order to avoid the if-else in patch 4/10 maybe we can do:

```
struct interrupt_to_isr {
	char* name;
	irqreturn_t isr(int irq, void *ctx);
}

interrupt_to_is px30_isrs[] {
	{"isp", rkisp1_isp_isr}
	{"mi",  rkisp1_capture_isr}
	{"mipi", rkisp1_mipi_isr}
}
static const struct rkisp1_match_data px30_isp_match_data = {
	.clks = px30_isp_clks,
	.size = ARRAY_SIZE(px30_isp_clks),
	.isp_ver = RKISP1_V12,
	.isrs = px30_isrs
};
//and similar for rk3399
```

Then in the probe we just do
```
for each (name,isr) in isrs
	irq = platform_get_irq_byname(name)
	devm_request_irq(dev, irq, isr,...
```


Thanks,
Dafna	




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux