On Mon, Oct 07, 2019 at 07:11:03PM +0800, Chen-Yu Tsai wrote: > On Mon, Oct 7, 2019 at 7:09 PM Maxime Ripard wrote: > > > > Hi, > > > > On Fri, Oct 04, 2019 at 02:33:41PM +0800, Chen-Yu Tsai wrote: > > > On Fri, Oct 4, 2019 at 12:37 AM Maxime Ripard wrote: > > > > On Thu, Oct 03, 2019 at 11:51:05PM +0800, Chen-Yu Tsai wrote: > > > > > On Thu, Oct 3, 2019 at 11:48 PM Maxime Ripard wrote: > > > > > > > > > > > > It turns out that what was thought to be the module clock was actually the > > > > > > clock meant to be used by the sensor, and isn't playing any role with the > > > > > > CSI controller itself. Let's drop that clock from our binding. > > > > > > > > > > > > Fixes: c5e8f4ccd775 ("media: dt-bindings: media: Add Allwinner A10 CSI binding") > > > > > > Reported-by: Chen-Yu Tsai > > > > > > Signed-off-by: Maxime Ripard > > > > > > --- > > > > > > .../devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml | 7 ++----- > > > > > > 1 file changed, 2 insertions(+), 5 deletions(-) > > > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml > > > > > > index 5dd1cf490cd9..d3e423fcb6c2 100644 > > > > > > --- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml > > > > > > +++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml > > > > > > @@ -27,14 +27,12 @@ properties: > > > > > > clocks: > > > > > > items: > > > > > > - description: The CSI interface clock > > > > > > - - description: The CSI module clock > > > > > > - description: The CSI ISP clock > > > > > > - description: The CSI DRAM clock > > > > > > > > > > > > clock-names: > > > > > > items: > > > > > > - const: bus > > > > > > - - const: mod > > > > > > - const: isp > > > > > > - const: ram > > > > > > > > > > > > @@ -89,9 +87,8 @@ examples: > > > > > > compatible = "allwinner,sun7i-a20-csi0"; > > > > > > reg = <0x01c09000 0x1000>; > > > > > > interrupts = ; > > > > > > - clocks = <&ccu CLK_AHB_CSI0>, <&ccu CLK_CSI0>, > > > > > > - <&ccu CLK_CSI_SCLK>, <&ccu CLK_DRAM_CSI0>; > > > > > > - clock-names = "bus", "mod", "isp", "ram"; > > > > > > + clocks = <&ccu CLK_AHB_CSI0>, <&ccu CLK_CSI_SCLK>, <&ccu CLK_DRAM_CSI0>; > > > > > > + clock-names = "bus", "isp", "ram"; > > > > > > > > > > I believe what we thought was the ISP clock is actually the module clock > > > > > for the whole CSI subsystem. So we should still use the module clock entry, > > > > > and remove the ISP entry. > > > > > > > > I'm really not sure it is. CSI1 on the A20 (possibly the A10 as well, > > > > I haven't checked), and the one on the A13 don't have any ISP embedded > > > > in the CSI controller. > > > > > > > > It makes some difference, because according to the BSP, you can see > > > > that the ISP clock is taken for CSI0: > > > > https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/drivers/media/video/sun4i_csi/csi0/sun4i_drv_csi.c#L389 > > > > > > > > While for CSI1, that block is commented out, and the ISP clock never > > > > used: > > > > https://github.com/linux-sunxi/linux-sunxi/blob/sunxi-3.4/drivers/media/video/sun4i_csi/csi1/sun4i_drv_csi.c#L396 > > > > > > > > So I really believe that the ISP clock is here to feed the ISP block > > > > within the CSI controller if there's any. But it's far from always the > > > > case, as opposed to a module clock for the whole CSI controller that > > > > would be here in both cases. > > > > > > I guess we should try to test this with CSI1 one, either on a Cubieboard > > > or OlinuXino with a simple camera like the OV7670? > > > > > > Do you have any hardware on hand for this? I have the Cubieboard but I > > > need to get some proper 2.0mm connector blocks. > > > > I've tested it with the A13 before, and it doesn't need the ISP clock > > OK! That clears things up! I've added both patches as fixes then. Thanks! Maxime