2022-05-16 16:34:28

by Ryan Chen

[permalink] [raw]
Subject: [PATCH v3 0/3] Add ASPEED AST2600 I2C new controller driver

This series add AST2600 i2c new register set driver. The i2c new
register set have new clock divider option for more flexiable generation.
And also have separate i2c master and slave register set for control.

v3:
-fix i2c global clock divide default value
-remove i2c slave no used dev_dbg info.

v2:
-add i2c global ymal file commit
-rename file name from new to ast2600.
aspeed-i2c-new-global.c -> i2c-ast2600-global.c
aspeed-i2c-new-global.h -> i2c-ast2600-global.h
i2c-new-aspeed.c -> i2c-ast2600.c
-rename all driver function name to ast2600

ryan_chen (3):
dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C global register
controller
dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C driver
i2c:aspeed:support ast2600 i2c new register mode driver

.../i2c/aspeed,i2c-ast2600-global.ymal | 44 +
.../bindings/i2c/aspeed,i2c-ast2600.ymal | 78 +
drivers/i2c/busses/Kconfig | 11 +
drivers/i2c/busses/Makefile | 1 +
drivers/i2c/busses/i2c-ast2600-global.c | 94 +
drivers/i2c/busses/i2c-ast2600-global.h | 19 +
drivers/i2c/busses/i2c-ast2600.c | 1703 +++++++++++++++++
7 files changed, 1950 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600-global.ymal
create mode 100644 Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600.ymal
create mode 100644 drivers/i2c/busses/i2c-ast2600-global.c
create mode 100644 drivers/i2c/busses/i2c-ast2600-global.h
create mode 100644 drivers/i2c/busses/i2c-ast2600.c

--
2.17.1



2022-05-16 19:44:24

by Ryan Chen

[permalink] [raw]
Subject: [PATCH v3 1/3] dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C global register controller

AST2600 I2C global register controller, add bindings document
to support driver of i2c global register set

Signed-off-by: ryan_chen <[email protected]>
---
.../i2c/aspeed,i2c-ast2600-global.ymal | 44 +++++++++++++++++++
1 file changed, 44 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600-global.ymal

diff --git a/Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600-global.ymal b/Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600-global.ymal
new file mode 100644
index 000000000000..d92a0878d03b
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600-global.ymal
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/aspeed,i2c-ast2600-global.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: AST2600 I2C Global Register on the AST26XX SoCs Device Tree Bindings
+
+maintainers:
+ - Ryan Chen <[email protected]>
+
+allOf:
+ - $ref: /schemas/i2c/i2c-controller.yaml#
+
+properties:
+ compatible:
+ enum:
+ - aspeed,ast2600-i2c-global
+
+ reg:
+ minItems: 1
+ items:
+ - description: address offset and range of bus
+ - description: address offset and range of bus buffer
+
+ resets:
+ maxItems: 1
+
+required:
+ - reg
+ - compatible
+ - resets
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/ast2600-clock.h>
+
+ i2c_gr: i2c-global-regs@0 {
+ compatible = "aspeed,ast2600-i2c-global", "syscon";
+ reg = <0x0 0x20>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+ };
--
2.17.1


2022-05-20 15:24:05

by Ryan Chen

[permalink] [raw]
Subject: RE: [PATCH v3 0/3] Add ASPEED AST2600 I2C new controller driver

> -----Original Message-----
> From: Peter Delevoryas <[email protected]>
> Sent: Friday, May 20, 2022 11:02 AM
> Cc: Joel Stanley <[email protected]>; Andrew Jeffery <[email protected]>; Philipp
> Zabel <[email protected]>; [email protected];
> [email protected]; [email protected]; OpenBMC List
> <[email protected]>; BMC-SW <[email protected]>; Ryan
> Chen <[email protected]>; Peter Delevoryas <[email protected]>
> Subject: Re: [PATCH v3 0/3] Add ASPEED AST2600 I2C new controller driver
>
>
>
> > On May 19, 2022, at 7:46 PM, Ryan Chen <[email protected]>
> wrote:
> >
> > Hello,
> >
> >> -----Original Message-----
> >> From: Peter Delevoryas <[email protected]>
> >> Sent: Friday, May 20, 2022 3:56 AM
> >> Cc: Joel Stanley <[email protected]>; Andrew Jeffery <[email protected]>;
> >> Philipp Zabel <[email protected]>;
> >> [email protected];
> >> [email protected]; [email protected]; OpenBMC
> >> List <[email protected]>; BMC-SW <[email protected]>;
> >> Peter Delevoryas <[email protected]>; Ryan Chen
> <[email protected]>
> >> Subject: Re: [PATCH v3 0/3] Add ASPEED AST2600 I2C new controller
> >> driver
> >>
> >>
> >>
> >>> On May 15, 2022, at 11:48 PM, ryan_chen <[email protected]>
> >> wrote:
> >>>
> >>> This series add AST2600 i2c new register set driver. The i2c new
> >>> register set have new clock divider option for more flexiable generation.
> >>> And also have separate i2c master and slave register set for control.
> >>
> >> Hey Ryan, thanks for this work! This is a little bit off-topic, but
> >> are you or anyone else at Aspeed working on an equivalent QEMU patch
> >> series? Without it, I don’t think QEMU will work with this series
> >> right? I think QEMU only supports the old register set right now.
> >>
> > No, there are two submit in QEMU about i2c new register mode.
> > One is ASPEED submit :
> > https://patchwork.kernel.org/project/qemu-devel/list/?series=626028&ar
> > chive=both Another is GOOGLE :
> > https://patchwork.kernel.org/project/qemu-devel/list/?series=627706&ar
> > chive=both
>
> Oh great, thanks. I just tried the Aspeed QEMU series and it worked for me
> with Zephyr, very helpful!
Thanks your feedback, it check ok, please let me know.

>
> >
> >>
> >>>
> >>> v3:
> >>> -fix i2c global clock divide default value -remove i2c slave no used
> >>> dev_dbg info.
> >>>
> >>> v2:
> >>> -add i2c global ymal file commit
> >>> -rename file name from new to ast2600.
> >>> aspeed-i2c-new-global.c -> i2c-ast2600-global.c
> >>> aspeed-i2c-new-global.h -> i2c-ast2600-global.h i2c-new-aspeed.c ->
> >>> i2c-ast2600.c -rename all driver function name to ast2600
> >>>
> >>> ryan_chen (3):
> >>> dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C global
> >>> register controller
> >>> dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C driver
> >>> i2c:aspeed:support ast2600 i2c new register mode driver
> >>>
> >>> .../i2c/aspeed,i2c-ast2600-global.ymal | 44 +
> >>> .../bindings/i2c/aspeed,i2c-ast2600.ymal | 78 +
> >>> drivers/i2c/busses/Kconfig | 11 + drivers/i2c/busses/Makefile | 1 +
> >>> drivers/i2c/busses/i2c-ast2600-global.c | 94 +
> >>> drivers/i2c/busses/i2c-ast2600-global.h | 19 +
> >>> drivers/i2c/busses/i2c-ast2600.c | 1703
> >> +++++++++++++++++
> >>> 7 files changed, 1950 insertions(+)
> >>> create mode 100644
> >>> Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600-global.ymal
> >>> create mode 100644
> >>> Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600.ymal
> >>> create mode 100644 drivers/i2c/busses/i2c-ast2600-global.c
> >>> create mode 100644 drivers/i2c/busses/i2c-ast2600-global.h
> >>> create mode 100644 drivers/i2c/busses/i2c-ast2600.c
> >>>
> >>> --
> >>> 2.17.1

2022-05-20 18:41:19

by Ryan Chen

[permalink] [raw]
Subject: RE: [PATCH v3 0/3] Add ASPEED AST2600 I2C new controller driver

Hello,

> -----Original Message-----
> From: Peter Delevoryas <[email protected]>
> Sent: Friday, May 20, 2022 3:56 AM
> Cc: Joel Stanley <[email protected]>; Andrew Jeffery <[email protected]>; Philipp
> Zabel <[email protected]>; [email protected];
> [email protected]; [email protected]; OpenBMC List
> <[email protected]>; BMC-SW <[email protected]>; Peter
> Delevoryas <[email protected]>; Ryan Chen <[email protected]>
> Subject: Re: [PATCH v3 0/3] Add ASPEED AST2600 I2C new controller driver
>
>
>
> > On May 15, 2022, at 11:48 PM, ryan_chen <[email protected]>
> wrote:
> >
> > This series add AST2600 i2c new register set driver. The i2c new
> > register set have new clock divider option for more flexiable generation.
> > And also have separate i2c master and slave register set for control.
>
> Hey Ryan, thanks for this work! This is a little bit off-topic, but are you or
> anyone else at Aspeed working on an equivalent QEMU patch series? Without
> it, I don’t think QEMU will work with this series right? I think QEMU only
> supports the old register set right now.
>
No, there are two submit in QEMU about i2c new register mode.
One is ASPEED submit : https://patchwork.kernel.org/project/qemu-devel/list/?series=626028&archive=both
Another is GOOGLE : https://patchwork.kernel.org/project/qemu-devel/list/?series=627706&archive=both

>
> >
> > v3:
> > -fix i2c global clock divide default value -remove i2c slave no used
> > dev_dbg info.
> >
> > v2:
> > -add i2c global ymal file commit
> > -rename file name from new to ast2600.
> > aspeed-i2c-new-global.c -> i2c-ast2600-global.c
> > aspeed-i2c-new-global.h -> i2c-ast2600-global.h i2c-new-aspeed.c ->
> > i2c-ast2600.c -rename all driver function name to ast2600
> >
> > ryan_chen (3):
> > dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C global register
> > controller
> > dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C driver
> > i2c:aspeed:support ast2600 i2c new register mode driver
> >
> > .../i2c/aspeed,i2c-ast2600-global.ymal | 44 +
> > .../bindings/i2c/aspeed,i2c-ast2600.ymal | 78 +
> > drivers/i2c/busses/Kconfig | 11 +
> > drivers/i2c/busses/Makefile | 1 +
> > drivers/i2c/busses/i2c-ast2600-global.c | 94 +
> > drivers/i2c/busses/i2c-ast2600-global.h | 19 +
> > drivers/i2c/busses/i2c-ast2600.c | 1703
> +++++++++++++++++
> > 7 files changed, 1950 insertions(+)
> > create mode 100644
> > Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600-global.ymal
> > create mode 100644
> > Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600.ymal
> > create mode 100644 drivers/i2c/busses/i2c-ast2600-global.c
> > create mode 100644 drivers/i2c/busses/i2c-ast2600-global.h
> > create mode 100644 drivers/i2c/busses/i2c-ast2600.c
> >
> > --
> > 2.17.1
> >
> >

2022-05-20 19:09:49

by Peter Delevoryas

[permalink] [raw]
Subject: Re: [PATCH v3 0/3] Add ASPEED AST2600 I2C new controller driver



> On May 15, 2022, at 11:48 PM, ryan_chen <[email protected]> wrote:
>
> This series add AST2600 i2c new register set driver. The i2c new
> register set have new clock divider option for more flexiable generation.
> And also have separate i2c master and slave register set for control.

Hey Ryan, thanks for this work! This is a little bit off-topic,
but are you or anyone else at Aspeed working on an equivalent QEMU
patch series? Without it, I don’t think QEMU will work with this
series right? I think QEMU only supports the old register set right now.

Thanks,
Peter

>
> v3:
> -fix i2c global clock divide default value
> -remove i2c slave no used dev_dbg info.
>
> v2:
> -add i2c global ymal file commit
> -rename file name from new to ast2600.
> aspeed-i2c-new-global.c -> i2c-ast2600-global.c
> aspeed-i2c-new-global.h -> i2c-ast2600-global.h
> i2c-new-aspeed.c -> i2c-ast2600.c
> -rename all driver function name to ast2600
>
> ryan_chen (3):
> dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C global register
> controller
> dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C driver
> i2c:aspeed:support ast2600 i2c new register mode driver
>
> .../i2c/aspeed,i2c-ast2600-global.ymal | 44 +
> .../bindings/i2c/aspeed,i2c-ast2600.ymal | 78 +
> drivers/i2c/busses/Kconfig | 11 +
> drivers/i2c/busses/Makefile | 1 +
> drivers/i2c/busses/i2c-ast2600-global.c | 94 +
> drivers/i2c/busses/i2c-ast2600-global.h | 19 +
> drivers/i2c/busses/i2c-ast2600.c | 1703 +++++++++++++++++
> 7 files changed, 1950 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600-global.ymal
> create mode 100644 Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600.ymal
> create mode 100644 drivers/i2c/busses/i2c-ast2600-global.c
> create mode 100644 drivers/i2c/busses/i2c-ast2600-global.h
> create mode 100644 drivers/i2c/busses/i2c-ast2600.c
>
> --
> 2.17.1
>
>

2022-05-21 10:26:57

by Peter Delevoryas

[permalink] [raw]
Subject: Re: [PATCH v3 0/3] Add ASPEED AST2600 I2C new controller driver



> On May 19, 2022, at 7:46 PM, Ryan Chen <[email protected]> wrote:
>
> Hello,
>
>> -----Original Message-----
>> From: Peter Delevoryas <[email protected]>
>> Sent: Friday, May 20, 2022 3:56 AM
>> Cc: Joel Stanley <[email protected]>; Andrew Jeffery <[email protected]>; Philipp
>> Zabel <[email protected]>; [email protected];
>> [email protected]; [email protected]; OpenBMC List
>> <[email protected]>; BMC-SW <[email protected]>; Peter
>> Delevoryas <[email protected]>; Ryan Chen <[email protected]>
>> Subject: Re: [PATCH v3 0/3] Add ASPEED AST2600 I2C new controller driver
>>
>>
>>
>>> On May 15, 2022, at 11:48 PM, ryan_chen <[email protected]>
>> wrote:
>>>
>>> This series add AST2600 i2c new register set driver. The i2c new
>>> register set have new clock divider option for more flexiable generation.
>>> And also have separate i2c master and slave register set for control.
>>
>> Hey Ryan, thanks for this work! This is a little bit off-topic, but are you or
>> anyone else at Aspeed working on an equivalent QEMU patch series? Without
>> it, I don’t think QEMU will work with this series right? I think QEMU only
>> supports the old register set right now.
>>
> No, there are two submit in QEMU about i2c new register mode.
> One is ASPEED submit : https://patchwork.kernel.org/project/qemu-devel/list/?series=626028&archive=both
> Another is GOOGLE : https://patchwork.kernel.org/project/qemu-devel/list/?series=627706&archive=both

Oh great, thanks. I just tried the Aspeed QEMU series and it worked for me with Zephyr, very helpful!

>
>>
>>>
>>> v3:
>>> -fix i2c global clock divide default value -remove i2c slave no used
>>> dev_dbg info.
>>>
>>> v2:
>>> -add i2c global ymal file commit
>>> -rename file name from new to ast2600.
>>> aspeed-i2c-new-global.c -> i2c-ast2600-global.c
>>> aspeed-i2c-new-global.h -> i2c-ast2600-global.h i2c-new-aspeed.c ->
>>> i2c-ast2600.c -rename all driver function name to ast2600
>>>
>>> ryan_chen (3):
>>> dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C global register
>>> controller
>>> dt-bindings: i2c-ast2600: Add bindings for AST2600 i2C driver
>>> i2c:aspeed:support ast2600 i2c new register mode driver
>>>
>>> .../i2c/aspeed,i2c-ast2600-global.ymal | 44 +
>>> .../bindings/i2c/aspeed,i2c-ast2600.ymal | 78 +
>>> drivers/i2c/busses/Kconfig | 11 +
>>> drivers/i2c/busses/Makefile | 1 +
>>> drivers/i2c/busses/i2c-ast2600-global.c | 94 +
>>> drivers/i2c/busses/i2c-ast2600-global.h | 19 +
>>> drivers/i2c/busses/i2c-ast2600.c | 1703
>> +++++++++++++++++
>>> 7 files changed, 1950 insertions(+)
>>> create mode 100644
>>> Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600-global.ymal
>>> create mode 100644
>>> Documentation/devicetree/bindings/i2c/aspeed,i2c-ast2600.ymal
>>> create mode 100644 drivers/i2c/busses/i2c-ast2600-global.c
>>> create mode 100644 drivers/i2c/busses/i2c-ast2600-global.h
>>> create mode 100644 drivers/i2c/busses/i2c-ast2600.c
>>>
>>> --
>>> 2.17.1