All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH next v2 1/2] gpio: hisi: Add initial device tree support
@ 2022-10-28  2:24 Weilong Chen
  2022-10-28  2:24 ` [PATCH next v2 2/2] dt-bindings: gpio: add entry for hisilicon,ascend910-gpio Weilong Chen
  2022-11-01  7:41 ` [PATCH next v2 1/2] gpio: hisi: Add initial device tree support Yicong Yang
  0 siblings, 2 replies; 4+ messages in thread
From: Weilong Chen @ 2022-10-28  2:24 UTC (permalink / raw)
  To: chenweilong, f.fangjian, linus.walleij, yangyicong, xuwei5,
	robh+dt, robh, krzysztof.kozlowski+dt
  Cc: linux-gpio, linux-kernel, devicetree

Add support for HiSilicon GPIO controller in embedded platform, which
boot from devicetree.

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
---
Change since v1:
- Rename gpio-ascend910 to ascend910-gpio
Link: https://lore.kernel.org/lkml/30b95e7b-b902-babc-ea78-a2112c80ec7e@linaro.org/t/#m39e195979c1f42a6327aba009428316607d033e2

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

diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index e034f752e7ce..71a7880af59d 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -310,7 +310,7 @@ config GPIO_GRGPIO
 
 config GPIO_HISI
 	tristate "HiSilicon GPIO controller driver"
-	depends on (ARM64 && ACPI) || COMPILE_TEST
+	depends on ARM64 || COMPILE_TEST
 	select GPIO_GENERIC
 	select GPIOLIB_IRQCHIP
 	help
diff --git a/drivers/gpio/gpio-hisi.c b/drivers/gpio/gpio-hisi.c
index 3caabef5c7a2..92cf575f2eab 100644
--- a/drivers/gpio/gpio-hisi.c
+++ b/drivers/gpio/gpio-hisi.c
@@ -1,8 +1,10 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /* Copyright (c) 2020 HiSilicon Limited. */
+#include <linux/acpi.h>
 #include <linux/gpio/driver.h>
 #include <linux/module.h>
 #include <linux/mod_devicetable.h>
+#include <linux/of.h>
 #include <linux/platform_device.h>
 #include <linux/property.h>
 
@@ -215,11 +217,21 @@ static void hisi_gpio_init_irq(struct hisi_gpio *hisi_gpio)
 	hisi_gpio_write_reg(chip, HISI_GPIO_INTCOMB_MASK_WX, 1);
 }
 
+#ifdef CONFIG_ACPI
 static const struct acpi_device_id hisi_gpio_acpi_match[] = {
 	{"HISI0184", 0},
 	{}
 };
 MODULE_DEVICE_TABLE(acpi, hisi_gpio_acpi_match);
+#endif
+
+#ifdef CONFIG_OF
+static const struct of_device_id hisi_gpio_dts_match[] = {
+	{ .compatible = "hisilicon,ascend910-gpio", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, hisi_gpio_dts_match);
+#endif
 
 static void hisi_gpio_get_pdata(struct device *dev,
 				struct hisi_gpio *hisi_gpio)
@@ -310,7 +322,8 @@ static int hisi_gpio_probe(struct platform_device *pdev)
 static struct platform_driver hisi_gpio_driver = {
 	.driver		= {
 		.name	= HISI_GPIO_DRIVER_NAME,
-		.acpi_match_table = hisi_gpio_acpi_match,
+		.acpi_match_table = ACPI_PTR(hisi_gpio_acpi_match),
+		.of_match_table = of_match_ptr(hisi_gpio_dts_match),
 	},
 	.probe		= hisi_gpio_probe,
 };
-- 
2.31.GIT


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

* [PATCH next v2 2/2] dt-bindings: gpio: add entry for hisilicon,ascend910-gpio
  2022-10-28  2:24 [PATCH next v2 1/2] gpio: hisi: Add initial device tree support Weilong Chen
@ 2022-10-28  2:24 ` Weilong Chen
  2022-10-28  2:28   ` Krzysztof Kozlowski
  2022-11-01  7:41 ` [PATCH next v2 1/2] gpio: hisi: Add initial device tree support Yicong Yang
  1 sibling, 1 reply; 4+ messages in thread
From: Weilong Chen @ 2022-10-28  2:24 UTC (permalink / raw)
  To: chenweilong, f.fangjian, linus.walleij, yangyicong, xuwei5,
	robh+dt, robh, krzysztof.kozlowski+dt
  Cc: linux-gpio, linux-kernel, devicetree

Add the new compatible for HiSilicon gpio controller driver.

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
---
Change since v1:
- Drop "Device Tree Bindings" and reg's description
- Move description in top-level description.
- Add gpio-cells to required
- Use additionalProperties and decimal numbers
- Use IRQ flags
- Use vendor,soc-ipblock format
Link: https://lore.kernel.org/lkml/30b95e7b-b902-babc-ea78-a2112c80ec7e@linaro.org/t/#m298c22f175ee09b101d6baca2a959bdd0f90b2c0

 .../gpio/hisilicon,ascend910-gpio.yaml        | 56 +++++++++++++++++++
 MAINTAINERS                                   |  1 +
 2 files changed, 57 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/gpio/hisilicon,ascend910-gpio.yaml

diff --git a/Documentation/devicetree/bindings/gpio/hisilicon,ascend910-gpio.yaml b/Documentation/devicetree/bindings/gpio/hisilicon,ascend910-gpio.yaml
new file mode 100644
index 000000000000..8868838bde3e
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/hisilicon,ascend910-gpio.yaml
@@ -0,0 +1,56 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/hisilicon,ascend910-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: HiSilicon common GPIO controller
+
+maintainers:
+  - Jay Fang <f.fangjian@huawei.com>
+
+description: |
+  The HiSilicon common GPIO controller can be used for many different
+  types of SoC such as Huawei Ascend AI series chips.
+
+properties:
+  compatible:
+    const: hisilicon,ascend910-gpio
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+
+  ngpios:
+    minimum: 1
+    maximum: 32
+
+required:
+  - compatible
+  - gpio-controller
+  - '#gpio-cells'
+  - interrupts
+  - ngpios
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    gpio@840d0000 {
+      compatible = "hisilicon,ascend910-gpio";
+      reg = <0x840d0000 0x1000>;
+      ngpios = <32>;
+      gpio-controller;
+      #gpio-cells = <2>;
+      interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 746becb5fe92..e29aad776ec1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9212,6 +9212,7 @@ HISILICON GPIO DRIVER
 M:	Jay Fang <f.fangjian@huawei.com>
 L:	linux-gpio@vger.kernel.org
 S:	Maintained
+F:	Documentation/devicetree/bindings/gpio/hisilicon,ascend910-gpio.yaml
 F:	drivers/gpio/gpio-hisi.c
 
 HISILICON HIGH PERFORMANCE RSA ENGINE DRIVER (HPRE)
-- 
2.31.GIT


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

* Re: [PATCH next v2 2/2] dt-bindings: gpio: add entry for hisilicon,ascend910-gpio
  2022-10-28  2:24 ` [PATCH next v2 2/2] dt-bindings: gpio: add entry for hisilicon,ascend910-gpio Weilong Chen
@ 2022-10-28  2:28   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 4+ messages in thread
From: Krzysztof Kozlowski @ 2022-10-28  2:28 UTC (permalink / raw)
  To: Weilong Chen, f.fangjian, linus.walleij, yangyicong, xuwei5,
	robh+dt, robh, krzysztof.kozlowski+dt
  Cc: linux-gpio, linux-kernel, devicetree

On 27/10/2022 22:24, Weilong Chen wrote:
> Add the new compatible for HiSilicon gpio controller driver.
> 
> Signed-off-by: Weilong Chen <chenweilong@huawei.com>
> ---
> Change since v1:

Thank you for your patch. There is something to discuss/improve.

> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/gpio/hisilicon,ascend910-gpio.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: HiSilicon common GPIO controller
> +
> +maintainers:
> +  - Jay Fang <f.fangjian@huawei.com>
> +
> +description: |

No need for "|". Can be dropped.

> +  The HiSilicon common GPIO controller can be used for many different
> +  types of SoC such as Huawei Ascend AI series chips.
> +
> +properties:
> +  compatible:
> +    const: hisilicon,ascend910-gpio
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  gpio-controller: true
> +
> +  "#gpio-cells":
> +    const: 2
> +
> +  ngpios:
> +    minimum: 1
> +    maximum: 32
> +
> +required:
> +  - compatible
> +  - gpio-controller
> +  - '#gpio-cells'

Please use the same style of quotes in entire file - either ' or ".

> +  - interrupts
> +  - ngpios
> +  - reg

The same order as appear in "properties:".

> +
> +additionalProperties: false
> +

Best regards,
Krzysztof


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

* Re: [PATCH next v2 1/2] gpio: hisi: Add initial device tree support
  2022-10-28  2:24 [PATCH next v2 1/2] gpio: hisi: Add initial device tree support Weilong Chen
  2022-10-28  2:24 ` [PATCH next v2 2/2] dt-bindings: gpio: add entry for hisilicon,ascend910-gpio Weilong Chen
@ 2022-11-01  7:41 ` Yicong Yang
  1 sibling, 0 replies; 4+ messages in thread
From: Yicong Yang @ 2022-11-01  7:41 UTC (permalink / raw)
  To: Weilong Chen
  Cc: linux-gpio, linux-kernel, devicetree, f.fangjian, linus.walleij,
	yangyicong, robh+dt, xuwei5, krzysztof.kozlowski+dt, robh

Hi Weilong,

On 2022/10/28 10:24, Weilong Chen wrote:
> Add support for HiSilicon GPIO controller in embedded platform, which
> boot from devicetree.
> 
> Signed-off-by: Weilong Chen <chenweilong@huawei.com>
> ---
> Change since v1:
> - Rename gpio-ascend910 to ascend910-gpio
> Link: https://lore.kernel.org/lkml/30b95e7b-b902-babc-ea78-a2112c80ec7e@linaro.org/t/#m39e195979c1f42a6327aba009428316607d033e2
> 
>  drivers/gpio/Kconfig     |  2 +-
>  drivers/gpio/gpio-hisi.c | 15 ++++++++++++++-
>  2 files changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
> index e034f752e7ce..71a7880af59d 100644
> --- a/drivers/gpio/Kconfig
> +++ b/drivers/gpio/Kconfig
> @@ -310,7 +310,7 @@ config GPIO_GRGPIO
>  
>  config GPIO_HISI
>  	tristate "HiSilicon GPIO controller driver"
> -	depends on (ARM64 && ACPI) || COMPILE_TEST
> +	depends on ARM64 || COMPILE_TEST
>  	select GPIO_GENERIC
>  	select GPIOLIB_IRQCHIP
>  	help
> diff --git a/drivers/gpio/gpio-hisi.c b/drivers/gpio/gpio-hisi.c
> index 3caabef5c7a2..92cf575f2eab 100644
> --- a/drivers/gpio/gpio-hisi.c
> +++ b/drivers/gpio/gpio-hisi.c
> @@ -1,8 +1,10 @@
>  // SPDX-License-Identifier: GPL-2.0-only
>  /* Copyright (c) 2020 HiSilicon Limited. */
> +#include <linux/acpi.h>
>  #include <linux/gpio/driver.h>
>  #include <linux/module.h>
>  #include <linux/mod_devicetable.h>
> +#include <linux/of.h>
>  #include <linux/platform_device.h>
>  #include <linux/property.h>
>  
> @@ -215,11 +217,21 @@ static void hisi_gpio_init_irq(struct hisi_gpio *hisi_gpio)
>  	hisi_gpio_write_reg(chip, HISI_GPIO_INTCOMB_MASK_WX, 1);
>  }
>  
> +#ifdef CONFIG_ACPI
>  static const struct acpi_device_id hisi_gpio_acpi_match[] = {
>  	{"HISI0184", 0},
>  	{}
>  };
>  MODULE_DEVICE_TABLE(acpi, hisi_gpio_acpi_match);
> +#endif
> +
> +#ifdef CONFIG_OF
> +static const struct of_device_id hisi_gpio_dts_match[] = {
> +	{ .compatible = "hisilicon,ascend910-gpio", },
> +	{ }
> +};
> +MODULE_DEVICE_TABLE(of, hisi_gpio_dts_match);
> +#endif
>  
>  static void hisi_gpio_get_pdata(struct device *dev,
>  				struct hisi_gpio *hisi_gpio)
> @@ -310,7 +322,8 @@ static int hisi_gpio_probe(struct platform_device *pdev)
>  static struct platform_driver hisi_gpio_driver = {
>  	.driver		= {
>  		.name	= HISI_GPIO_DRIVER_NAME,
> -		.acpi_match_table = hisi_gpio_acpi_match,
> +		.acpi_match_table = ACPI_PTR(hisi_gpio_acpi_match),
> +		.of_match_table = of_match_ptr(hisi_gpio_dts_match),

Andy has some comments about using of ACPI_PTR/of_match_ptr(), I think they also
apply here. [*]

The patch itself looks good to me.

[*] https://lore.kernel.org/linux-i2c/d96beadb-5693-6c73-8fee-3ac3b4cb9a44@huawei.com/T/#m51adf2c1480a14ca0882784826f3168ddb83bf62

>  	},
>  	.probe		= hisi_gpio_probe,
>  };
> 

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

end of thread, other threads:[~2022-11-01  7:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-28  2:24 [PATCH next v2 1/2] gpio: hisi: Add initial device tree support Weilong Chen
2022-10-28  2:24 ` [PATCH next v2 2/2] dt-bindings: gpio: add entry for hisilicon,ascend910-gpio Weilong Chen
2022-10-28  2:28   ` Krzysztof Kozlowski
2022-11-01  7:41 ` [PATCH next v2 1/2] gpio: hisi: Add initial device tree support Yicong Yang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.