linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH next v8 1/2] i2c: hisi: Add initial device tree support
@ 2022-10-24  1:51 Weilong Chen
  2022-10-24  1:51 ` [PATCH next v8 2/2] dt-bindings: i2c: add entry for hisilicon,i2c-ascend910 Weilong Chen
  0 siblings, 1 reply; 5+ messages in thread
From: Weilong Chen @ 2022-10-24  1:51 UTC (permalink / raw)
  To: chenweilong, yangyicong, xuwei5, wsa, robh+dt, robh
  Cc: linux-i2c, linux-kernel, devicetree

The HiSilicon I2C controller can be used on embedded platform, which
boot from devicetree.

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Acked-by: Yicong Yang <yangyicong@hisilicon.com>
---
Change since v7:
- No change
Link: https://lore.kernel.org/all/20221021035638.203929-1-chenweilong@huawei.com/

 drivers/i2c/busses/Kconfig    |  2 +-
 drivers/i2c/busses/i2c-hisi.c | 15 ++++++++++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 264e780ae32e..a2081c03f3c4 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -673,7 +673,7 @@ config I2C_HIGHLANDER
 
 config I2C_HISI
 	tristate "HiSilicon I2C controller"
-	depends on (ARM64 && ACPI) || COMPILE_TEST
+	depends on ARM64 || COMPILE_TEST
 	help
 	  Say Y here if you want to have Hisilicon I2C controller support
 	  available on the Kunpeng Server.
diff --git a/drivers/i2c/busses/i2c-hisi.c b/drivers/i2c/busses/i2c-hisi.c
index 76c3d8f6fc3c..d58a6d2f1bc6 100644
--- a/drivers/i2c/busses/i2c-hisi.c
+++ b/drivers/i2c/busses/i2c-hisi.c
@@ -5,6 +5,7 @@
  * Copyright (c) 2021 HiSilicon Technologies Co., Ltd.
  */
 
+#include <linux/acpi.h>
 #include <linux/bits.h>
 #include <linux/bitfield.h>
 #include <linux/completion.h>
@@ -13,6 +14,7 @@
 #include <linux/io.h>
 #include <linux/module.h>
 #include <linux/mod_devicetable.h>
+#include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/property.h>
 #include <linux/units.h>
@@ -483,17 +485,28 @@ static int hisi_i2c_probe(struct platform_device *pdev)
 	return 0;
 }
 
+#ifdef CONFIG_ACPI
 static const struct acpi_device_id hisi_i2c_acpi_ids[] = {
 	{ "HISI03D1", 0 },
 	{ }
 };
 MODULE_DEVICE_TABLE(acpi, hisi_i2c_acpi_ids);
+#endif
+
+#ifdef CONFIG_OF
+static const struct of_device_id hisi_i2c_dts_ids[] = {
+	{ .compatible = "hisilicon,i2c-ascend910", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, hisi_i2c_dts_ids);
+#endif
 
 static struct platform_driver hisi_i2c_driver = {
 	.probe		= hisi_i2c_probe,
 	.driver		= {
 		.name	= "hisi-i2c",
-		.acpi_match_table = hisi_i2c_acpi_ids,
+		.acpi_match_table = ACPI_PTR(hisi_i2c_acpi_ids),
+		.of_match_table = of_match_ptr(hisi_i2c_dts_ids),
 	},
 };
 module_platform_driver(hisi_i2c_driver);
-- 
2.31.GIT


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH next v8 2/2] dt-bindings: i2c: add entry for hisilicon,i2c-ascend910
  2022-10-24  1:51 [PATCH next v8 1/2] i2c: hisi: Add initial device tree support Weilong Chen
@ 2022-10-24  1:51 ` Weilong Chen
  2022-10-25 22:55   ` Rob Herring
  2022-10-29  0:04   ` Krzysztof Kozlowski
  0 siblings, 2 replies; 5+ messages in thread
From: Weilong Chen @ 2022-10-24  1:51 UTC (permalink / raw)
  To: chenweilong, yangyicong, xuwei5, wsa, robh+dt, robh
  Cc: linux-i2c, linux-kernel, devicetree

Add the new compatible for HiSilicon i2c.

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
---
Change since v7:
- Fix yamllint errors, rename i2c-xxx to i2c-ascend910
Link: https://lore.kernel.org/all/166635752527.3428089.707277745439761591.robh@kernel.org/

 .../bindings/i2c/hisilicon,i2c-ascend910.yaml | 70 +++++++++++++++++++
 MAINTAINERS                                   |  1 +
 2 files changed, 71 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml

diff --git a/Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml b/Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml
new file mode 100644
index 000000000000..918825a3026b
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/i2c/hisilicon,i2c-ascend910.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: HiSilicon common I2C controller Device Tree Bindings
+
+maintainers:
+  - Yicong Yang <yangyicong@hisilicon.com>
+
+allOf:
+  - $ref: /schemas/i2c/i2c-controller.yaml#
+
+properties:
+  compatible:
+    const: hisilicon,i2c-ascend910
+    description:
+      The HiSilicon common I2C controller can be used for many different
+      types of SoC such as Huawei Ascend AI series chips.
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-frequency:
+    default: 400000
+
+  i2c-sda-falling-time-ns:
+    default: 343
+
+  i2c-scl-falling-time-ns:
+    default: 203
+
+  i2c-sda-hold-time-ns:
+    default: 830
+
+  i2c-scl-rising-time-ns:
+    default: 365
+
+  i2c-digital-filter-width-ns:
+    default: 0
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c@5038b0000 {
+      compatible = "hisilicon,i2c-ascend910";
+      reg = <0x38b0000 0x10000>;
+      interrupts = <0x0 120 0x4>;
+      i2c-sda-falling-time-ns = <56>;
+      i2c-scl-falling-time-ns = <56>;
+      i2c-sda-hold-time-ns = <56>;
+      i2c-scl-rising-time-ns = <56>;
+      i2c-digital-filter;
+      i2c-digital-filter-width-ns = <0x0>;
+      clocks = <&alg_clk>;
+      clock-frequency = <400000>;
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index ad32dc9c4822..5e5e4a3f5ada 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9211,6 +9211,7 @@ M:	Yicong Yang <yangyicong@hisilicon.com>
 L:	linux-i2c@vger.kernel.org
 S:	Maintained
 W:	https://www.hisilicon.com
+F:	Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml
 F:	drivers/i2c/busses/i2c-hisi.c
 
 HISILICON LPC BUS DRIVER
-- 
2.31.GIT


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH next v8 2/2] dt-bindings: i2c: add entry for hisilicon,i2c-ascend910
  2022-10-24  1:51 ` [PATCH next v8 2/2] dt-bindings: i2c: add entry for hisilicon,i2c-ascend910 Weilong Chen
@ 2022-10-25 22:55   ` Rob Herring
  2022-10-26  0:54     ` chenweilong
  2022-10-29  0:04   ` Krzysztof Kozlowski
  1 sibling, 1 reply; 5+ messages in thread
From: Rob Herring @ 2022-10-25 22:55 UTC (permalink / raw)
  To: Weilong Chen
  Cc: yangyicong, wsa, linux-i2c, xuwei5, linux-kernel, devicetree, robh+dt

On Mon, 24 Oct 2022 09:51:51 +0800, Weilong Chen wrote:
> Add the new compatible for HiSilicon i2c.
> 
> Signed-off-by: Weilong Chen <chenweilong@huawei.com>
> ---
> Change since v7:
> - Fix yamllint errors, rename i2c-xxx to i2c-ascend910
> Link: https://lore.kernel.org/all/166635752527.3428089.707277745439761591.robh@kernel.org/
> 
>  .../bindings/i2c/hisilicon,i2c-ascend910.yaml | 70 +++++++++++++++++++
>  MAINTAINERS                                   |  1 +
>  2 files changed, 71 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml
> 

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH next v8 2/2] dt-bindings: i2c: add entry for hisilicon,i2c-ascend910
  2022-10-25 22:55   ` Rob Herring
@ 2022-10-26  0:54     ` chenweilong
  0 siblings, 0 replies; 5+ messages in thread
From: chenweilong @ 2022-10-26  0:54 UTC (permalink / raw)
  To: Rob Herring
  Cc: yangyicong, wsa, linux-i2c, xuwei5, linux-kernel, devicetree, robh+dt

Thanks a lot.

On 2022/10/26 6:55, Rob Herring wrote:
> On Mon, 24 Oct 2022 09:51:51 +0800, Weilong Chen wrote:
>> Add the new compatible for HiSilicon i2c.
>>
>> Signed-off-by: Weilong Chen <chenweilong@huawei.com>
>> ---
>> Change since v7:
>> - Fix yamllint errors, rename i2c-xxx to i2c-ascend910
>> Link: https://lore.kernel.org/all/166635752527.3428089.707277745439761591.robh@kernel.org/
>>
>>  .../bindings/i2c/hisilicon,i2c-ascend910.yaml | 70 +++++++++++++++++++
>>  MAINTAINERS                                   |  1 +
>>  2 files changed, 71 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml
>>
> Reviewed-by: Rob Herring <robh@kernel.org>
>
> .



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH next v8 2/2] dt-bindings: i2c: add entry for hisilicon,i2c-ascend910
  2022-10-24  1:51 ` [PATCH next v8 2/2] dt-bindings: i2c: add entry for hisilicon,i2c-ascend910 Weilong Chen
  2022-10-25 22:55   ` Rob Herring
@ 2022-10-29  0:04   ` Krzysztof Kozlowski
  1 sibling, 0 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2022-10-29  0:04 UTC (permalink / raw)
  To: Weilong Chen, yangyicong, xuwei5, wsa, robh+dt, robh
  Cc: linux-i2c, linux-kernel, devicetree

On 23/10/2022 21:51, Weilong Chen wrote:
> Add the new compatible for HiSilicon i2c.
> 
> Signed-off-by: Weilong Chen <chenweilong@huawei.com>

Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC.  It might happen, that command when run on an older
kernel, gives you outdated entries.  Therefore please be sure you base
your patches on recent Linux kernel.

> ---
> Change since v7:
> - Fix yamllint errors, rename i2c-xxx to i2c-ascend910
> Link: https://lore.kernel.org/all/166635752527.3428089.707277745439761591.robh@kernel.org/
> 
>  .../bindings/i2c/hisilicon,i2c-ascend910.yaml | 70 +++++++++++++++++++
>  MAINTAINERS                                   |  1 +
>  2 files changed, 71 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml
> 
> diff --git a/Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml b/Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml
> new file mode 100644
> index 000000000000..918825a3026b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/i2c/hisilicon,i2c-ascend910.yaml
> @@ -0,0 +1,70 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/i2c/hisilicon,i2c-ascend910.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"

My previous comments apply.

> +
> +title: HiSilicon common I2C controller Device Tree Bindings
> +
> +maintainers:
> +  - Yicong Yang <yangyicong@hisilicon.com>
> +
> +allOf:
> +  - $ref: /schemas/i2c/i2c-controller.yaml#
> +
> +properties:
> +  compatible:
> +    const: hisilicon,i2c-ascend910
> +    description:
> +      The HiSilicon common I2C controller can be used for many different
> +      types of SoC such as Huawei Ascend AI series chips.

Comment still applies.

> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +  clock-frequency:
> +    default: 400000
> +
> +  i2c-sda-falling-time-ns:
> +    default: 343
> +
> +  i2c-scl-falling-time-ns:
> +    default: 203
> +
> +  i2c-sda-hold-time-ns:
> +    default: 830
> +
> +  i2c-scl-rising-time-ns:
> +    default: 365
> +
> +  i2c-digital-filter-width-ns:
> +    default: 0
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    i2c@5038b0000 {
> +      compatible = "hisilicon,i2c-ascend910";
> +      reg = <0x38b0000 0x10000>;
> +      interrupts = <0x0 120 0x4>;

Same here.


Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-29  0:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-24  1:51 [PATCH next v8 1/2] i2c: hisi: Add initial device tree support Weilong Chen
2022-10-24  1:51 ` [PATCH next v8 2/2] dt-bindings: i2c: add entry for hisilicon,i2c-ascend910 Weilong Chen
2022-10-25 22:55   ` Rob Herring
2022-10-26  0:54     ` chenweilong
2022-10-29  0:04   ` Krzysztof Kozlowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).