Re: [PATCH v4 5/9] media: staging: rkisp1: remove unecessary clocks
From: Rob Herring <robh+dt@kernel.org>
Date: 2020-07-17 18:45:10
Also in:
linux-media, linux-rockchip, lkml
On Fri, Jul 17, 2020 at 12:14 PM Helen Koike [off-list ref] wrote:
Hi Rob, Thanks for your review. On 7/17/20 2:49 PM, Rob Herring wrote:quoted
On Thu, Jul 2, 2020 at 1:13 PM Helen Koike [off-list ref] wrote:quoted
aclk_isp_wrap is a child of aclk_isp, and hclk_isp_wrap is a child of hclk_isp, thus we can remove parents from the list.But it looks like it is the wrap clocks you are removing.From this binding yes, but the idea is to add in the dt wherever clock responsible for the full ACLK path for instance. In the example below, clock aclk_isp is ACLK_ISP0_WRAPPER. Does this make sense?
Just perhaps clarify the renaming.
quoted
quoted
Also, for the isp0, we only need the ISP clock, ACLK and HCLK. In the future we'll need a pixel clock for RK3288 and RK3399, and a JPEG clock for RK3288. So with the goal to cleanup the dt-bindings and remove it from staging, simplify clock names to isp, aclk and hclk. For reference, this is the isp clock topology on RK3399: xin24m pll_npll npll clk_isp1 clk_isp0 pll_cpll cpll aclk_isp1 aclk_isp1_noc hclk_isp1 aclk_isp1_wrapper hclk_isp1_noc aclk_isp0 hclk_isp1_wrapper aclk_isp0_wrapper aclk_isp0_noc hclk_isp0 hclk_isp0_wrapper hclk_isp0_noc pclkin_isp1_wrapper Signed-off-by: Helen Koike <redacted> --- Changes in V4: - update binding according to suggestion by Robin Murphy on https://patchwork.kernel.org/patch/11475007/ Changes in V3: - this is a new patch in the series --- .../bindings/media/rockchip-isp1.yaml | 30 +++++++++---------- drivers/staging/media/rkisp1/rkisp1-dev.c | 8 ++--- 2 files changed, 17 insertions(+), 21 deletions(-)diff --git a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml index 4d111ef2e89c7..f10c53d008748 100644 --- a/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml +++ b/drivers/staging/media/rkisp1/Documentation/devicetree/bindings/media/rockchip-isp1.yaml@@ -24,20 +24,20 @@ properties: maxItems: 1 clocks: - items: - - description: ISP clock - - description: ISP AXI clock clock - - description: ISP AXI clock wrapper clock - - description: ISP AHB clock clock - - description: ISP AHB wrapper clockThis is the correct way to describe multiple clocks.The idea was to prepare for rk3288 and rk3399 isp1, as suggested here https://patchwork.kernel.org/patch/11475007/#23462085 Or should we do: clocks: oneOf: # rk3288 clocks - items: - description: ISP clock - description: ISP AXI clock - description: ISP AHB clock - description: ISP Pixel clock - description: ISP JPEG source clock
The main section should have this and 'minItems: 3'. IOW, it's a superset of what's valid. Then you can restrict specific compatibles further with an if/then schema. For rk3288, you need one with 'minItems: 5'.
# rk3399 isp0 clocks
- items:
- description: ISP clock
- description: ISP AXI clock
- description: ISP AHB clockAnd this would be an if/then schema based on the compatible string and defining 'maxItems: 3'.
# rk3399 isp1 clocks
- items:
- description: ISP clock
- description: ISP AXI clock
- description: ISP AHB clock
- description: ISP Pixel clock
And an if/then with { minItems: 4, maxItems: 4 }. Or really since
these are just different instances, just combine them into 1
conditional allowing 3 or 4 clocks.
There are lots of examples to follow in the tree.
Rob