mbox series

[0/6] i2c-imx-lpi2c: add IPG clock

Message ID 20220812043424.4078034-1-peng.fan@oss.nxp.com
Headers show
Series i2c-imx-lpi2c: add IPG clock | expand

Message

Peng Fan (OSS) Aug. 12, 2022, 4:34 a.m. UTC
From: Peng Fan <peng.fan@nxp.com>

The i.MX LPI2C needs PER and IPG clock, not just PER or IPG clock.
This patch is to enable both PER and IPG clock for imx-i2c-lpi2c.

Peng Fan (6):
  dt-bindings: i2c: i2c-imx-lpi2c: add ipg clk
  dt-bindings: i2c: i2c-imx-lpi2c: add dmas property
  dt-bindings: i2c: i2c-imx-lpi2c: add i.MX93
  arm64: dts: imx8-ss-dma: add IPG clock for i2c
  ARM: dts: imx7ulp: Add PER clock for lpi2c
  i2c: imx-lpi2c: handle IPG clock

 .../bindings/i2c/i2c-imx-lpi2c.yaml           | 20 +++++++--
 arch/arm/boot/dts/imx7ulp.dtsi                | 10 +++--
 .../arm64/boot/dts/freescale/imx8-ss-dma.dtsi | 20 +++++----
 drivers/i2c/busses/i2c-imx-lpi2c.c            | 41 ++++++++++++++-----
 4 files changed, 66 insertions(+), 25 deletions(-)

Comments

Peng Fan Aug. 16, 2022, 6:31 a.m. UTC | #1
> Subject: Re: [PATCH 0/6] i2c-imx-lpi2c: add IPG clock
> 
> On 15/08/2022 03:52, Peng Fan wrote:
> > Hi Krzysztof,
> >
> >> Subject: Re: [PATCH 0/6] i2c-imx-lpi2c: add IPG clock
> >>
> >> On 12/08/2022 07:34, Peng Fan (OSS) wrote:
> >>> From: Peng Fan <peng.fan@nxp.com>
> >>>
> >>> The i.MX LPI2C needs PER and IPG clock, not just PER or IPG clock.
> >>> This patch is to enable both PER and IPG clock for imx-i2c-lpi2c.
> >>
> >> This patchset breaks the ABI and is not bisectable. The justification
> >> is very limited (one sentence), so not really enough.
> >
> > ARM32 i.MX7ULP and ARM64 i.MX8QXP/i.MX8ULP all need to use two
> clocks,
> > PER and IPG. But current dt-bindings and dts, use one clock.
> >
> > This patchset includes dts changes patch 4 and patch 5.
> > Patch 6 is to update driver use two clocks.
> >
> > I think the patch order in this patchset would not break git bisect,
> > it just break ABI. But I not find good way how could not break ABI,
> > because only use one clock is wrong whether in dt-bindings or dtbs.
> 
> Driver changes always go via separate branch than DTS, so your patch
> breaks git bisect. I already pointed it out in other patch. This is not really
> acceptable. Breaking ABI is another problem which could be justified with
> your explanation in other cases... but not in this one, since it is easy to make
> it backwards compatible,

I see. But the current binding and dts using one clk is really wrong. Anyway,
I could make it backwards compatible.

Thanks,
Peng.
> 
> > Should I use a fixes tag to dt-bindings, then break ABI is allowed?
> 
> No. For such patch ABI break is also not allowed in that case. Just make the
> driver backwards compatible and both problems - non bisectability and ABI
> break - go away.
> 
> Best regards,
> Krzysztof
Krzysztof Kozlowski Aug. 16, 2022, 9:44 a.m. UTC | #2
On 16/08/2022 11:43, Peng Fan wrote:
>> No. For such patch ABI break is also not allowed in that case. Just make the
>> driver backwards compatible and both problems - non bisectability and ABI
>> break - go away.
> 
> One more point that I am not very clear about  
> "non bisectability and ABI break "
> 
> ABI, I suppose you mean dt-binding, right?
> The I2C bindings and dts update will go through different tree, I think. So
> dtbs_check may fail considering the PR merge order.

ABI break means breaking Application Binary Interface, so out of tree
DTS conforming to old bindings stop working with new kernel.

ABI is described by bindings and implemented by driver. You broke it in
the driver.

Best regards,
Krzysztof