* [for-upstream/dovetail 0/2] Add support for Cherryview GPIO @ 2021-05-13 1:02 hongzha1 2021-05-13 1:02 ` [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips hongzha1 2021-05-13 1:02 ` [for-upstream/dovetail 2/2] driver/gpio: cherryview: introduce gpio driver for pinctl Cherryview hongzha1 0 siblings, 2 replies; 9+ messages in thread From: hongzha1 @ 2021-05-13 1:02 UTC (permalink / raw) To: xenomai 1. introduce helper to find array of gpiochips 2. Add support for Cherryview GPIO controller based on helper 1. I already validated them on Rock PI X board. hongzha1 (2): drivers/gpio: core: introduce helper to find array of gpiochips driver/gpio: cherryview: introduce gpio driver for pinctl Cherryview include/cobalt/kernel/rtdm/gpio.h | 4 +++ kernel/drivers/gpio/Kconfig | 7 +++++ kernel/drivers/gpio/Makefile | 2 ++ kernel/drivers/gpio/gpio-cherryview.c | 43 +++++++++++++++++++++++++++ kernel/drivers/gpio/gpio-core.c | 19 ++++++++++++ 5 files changed, 75 insertions(+) create mode 100644 kernel/drivers/gpio/gpio-cherryview.c -- 2.17.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips 2021-05-13 1:02 [for-upstream/dovetail 0/2] Add support for Cherryview GPIO hongzha1 @ 2021-05-13 1:02 ` hongzha1 2021-05-14 8:55 ` Florian Bezdeka 2021-05-18 21:25 ` Jan Kiszka 2021-05-13 1:02 ` [for-upstream/dovetail 2/2] driver/gpio: cherryview: introduce gpio driver for pinctl Cherryview hongzha1 1 sibling, 2 replies; 9+ messages in thread From: hongzha1 @ 2021-05-13 1:02 UTC (permalink / raw) To: xenomai To find array of gpiochips for non-OF platform Signed-off-by: hongzha1 <hongzhan.chen@intel.com> --- include/cobalt/kernel/rtdm/gpio.h | 4 ++++ kernel/drivers/gpio/gpio-core.c | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/include/cobalt/kernel/rtdm/gpio.h b/include/cobalt/kernel/rtdm/gpio.h index c5fb20f25..99772f558 100644 --- a/include/cobalt/kernel/rtdm/gpio.h +++ b/include/cobalt/kernel/rtdm/gpio.h @@ -64,6 +64,10 @@ int rtdm_gpiochip_post_event(struct rtdm_gpio_chip *rgc, int rtdm_gpiochip_find(struct device_node *from, const char *label, int type); +int rtdm_gpiochip_array_find(struct device_node *from, + const char *compat[], + int nentries, int type); + #ifdef CONFIG_OF int rtdm_gpiochip_scan_of(struct device_node *from, diff --git a/kernel/drivers/gpio/gpio-core.c b/kernel/drivers/gpio/gpio-core.c index b3d801fa1..20a6d7875 100644 --- a/kernel/drivers/gpio/gpio-core.c +++ b/kernel/drivers/gpio/gpio-core.c @@ -543,6 +543,25 @@ int rtdm_gpiochip_find(struct device_node *from, const char *label, } EXPORT_SYMBOL_GPL(rtdm_gpiochip_find); +int rtdm_gpiochip_array_find(struct device_node *from, + const char *compat[], + int nentries, int type) +{ + int ret = -ENODEV, _ret, n; + + for (n = 0; n < nentries; n++) { + _ret = rtdm_gpiochip_find(from, compat[n], type); + if (_ret) { + if (_ret != -ENODEV) + return _ret; + } else + ret = 0; + } + + return ret; +} +EXPORT_SYMBOL_GPL(rtdm_gpiochip_array_find); + #ifdef CONFIG_OF #include <linux/of_platform.h> -- 2.17.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips 2021-05-13 1:02 ` [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips hongzha1 @ 2021-05-14 8:55 ` Florian Bezdeka 2021-05-14 9:10 ` Florian Bezdeka 2021-05-18 21:25 ` Jan Kiszka 1 sibling, 1 reply; 9+ messages in thread From: Florian Bezdeka @ 2021-05-14 8:55 UTC (permalink / raw) To: hongzha1, xenomai On 13.05.21 03:02, hongzha1 via Xenomai wrote: > To find array of gpiochips for non-OF platform > > Signed-off-by: hongzha1 <hongzhan.chen@intel.com> > --- > include/cobalt/kernel/rtdm/gpio.h | 4 ++++ > kernel/drivers/gpio/gpio-core.c | 19 +++++++++++++++++++ > 2 files changed, 23 insertions(+) > > diff --git a/include/cobalt/kernel/rtdm/gpio.h b/include/cobalt/kernel/rtdm/gpio.h > index c5fb20f25..99772f558 100644 > --- a/include/cobalt/kernel/rtdm/gpio.h > +++ b/include/cobalt/kernel/rtdm/gpio.h > @@ -64,6 +64,10 @@ int rtdm_gpiochip_post_event(struct rtdm_gpio_chip *rgc, > int rtdm_gpiochip_find(struct device_node *from, > const char *label, int type); > > +int rtdm_gpiochip_array_find(struct device_node *from, > + const char *compat[], > + int nentries, int type); > + > #ifdef CONFIG_OF > > int rtdm_gpiochip_scan_of(struct device_node *from, > diff --git a/kernel/drivers/gpio/gpio-core.c b/kernel/drivers/gpio/gpio-core.c > index b3d801fa1..20a6d7875 100644 > --- a/kernel/drivers/gpio/gpio-core.c > +++ b/kernel/drivers/gpio/gpio-core.c > @@ -543,6 +543,25 @@ int rtdm_gpiochip_find(struct device_node *from, const char *label, > } > EXPORT_SYMBOL_GPL(rtdm_gpiochip_find); > > +int rtdm_gpiochip_array_find(struct device_node *from, > + const char *compat[], > + int nentries, int type) > +{ > + int ret = -ENODEV, _ret, n; > + > + for (n = 0; n < nentries; n++) { > + _ret = rtdm_gpiochip_find(from, compat[n], type); > + if (_ret) { > + if (_ret != -ENODEV) > + return _ret; > + } else > + ret = 0; > + } > + > + return ret; > +} I'm not sure if I completely understand the code, but maybe it could be simplified to: { int ret, n; for (n = 0; n < nentries; n++) { ret = rtdm_gpiochip_find(from, compat[n], type); if (ret && ret != -ENODEV) break; } return ret; } > +EXPORT_SYMBOL_GPL(rtdm_gpiochip_array_find); > + > #ifdef CONFIG_OF > > #include <linux/of_platform.h> > -- Siemens AG, T RDA IOT Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips 2021-05-14 8:55 ` Florian Bezdeka @ 2021-05-14 9:10 ` Florian Bezdeka 2021-05-17 1:15 ` Chen, Hongzhan 0 siblings, 1 reply; 9+ messages in thread From: Florian Bezdeka @ 2021-05-14 9:10 UTC (permalink / raw) To: hongzha1, xenomai On 14.05.21 10:55, Florian Bezdeka via Xenomai wrote: > On 13.05.21 03:02, hongzha1 via Xenomai wrote: >> To find array of gpiochips for non-OF platform >> >> Signed-off-by: hongzha1 <hongzhan.chen@intel.com> >> --- >> include/cobalt/kernel/rtdm/gpio.h | 4 ++++ >> kernel/drivers/gpio/gpio-core.c | 19 +++++++++++++++++++ >> 2 files changed, 23 insertions(+) >> >> diff --git a/include/cobalt/kernel/rtdm/gpio.h b/include/cobalt/kernel/rtdm/gpio.h >> index c5fb20f25..99772f558 100644 >> --- a/include/cobalt/kernel/rtdm/gpio.h >> +++ b/include/cobalt/kernel/rtdm/gpio.h >> @@ -64,6 +64,10 @@ int rtdm_gpiochip_post_event(struct rtdm_gpio_chip *rgc, >> int rtdm_gpiochip_find(struct device_node *from, >> const char *label, int type); >> >> +int rtdm_gpiochip_array_find(struct device_node *from, >> + const char *compat[], >> + int nentries, int type); >> + >> #ifdef CONFIG_OF >> >> int rtdm_gpiochip_scan_of(struct device_node *from, >> diff --git a/kernel/drivers/gpio/gpio-core.c b/kernel/drivers/gpio/gpio-core.c >> index b3d801fa1..20a6d7875 100644 >> --- a/kernel/drivers/gpio/gpio-core.c >> +++ b/kernel/drivers/gpio/gpio-core.c >> @@ -543,6 +543,25 @@ int rtdm_gpiochip_find(struct device_node *from, const char *label, >> } >> EXPORT_SYMBOL_GPL(rtdm_gpiochip_find); >> >> +int rtdm_gpiochip_array_find(struct device_node *from, >> + const char *compat[], >> + int nentries, int type) >> +{ >> + int ret = -ENODEV, _ret, n; >> + >> + for (n = 0; n < nentries; n++) { >> + _ret = rtdm_gpiochip_find(from, compat[n], type); >> + if (_ret) { >> + if (_ret != -ENODEV) >> + return _ret; >> + } else >> + ret = 0; >> + } >> + >> + return ret; >> +} > > I'm not sure if I completely understand the code, but maybe it could be > simplified to: > > { > int ret, n; > > for (n = 0; n < nentries; n++) { > ret = rtdm_gpiochip_find(from, compat[n], type); > > if (ret && ret != -ENODEV) > break; > } > > return ret; > } v2: { int ret, n; for (n = 0; n < nentries; n++) { ret = rtdm_gpiochip_find(from, compat[n], type); if (ret && ret != -ENODEV) break; // Should we stop on first -ENODEV? if (ret && ret == -ENODEV) ret = 0; } return ret; } > >> +EXPORT_SYMBOL_GPL(rtdm_gpiochip_array_find); >> + >> #ifdef CONFIG_OF >> >> #include <linux/of_platform.h> >> > > -- Siemens AG, T RDA IOT Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips 2021-05-14 9:10 ` Florian Bezdeka @ 2021-05-17 1:15 ` Chen, Hongzhan 0 siblings, 0 replies; 9+ messages in thread From: Chen, Hongzhan @ 2021-05-17 1:15 UTC (permalink / raw) To: Florian Bezdeka, xenomai > >-----Original Message----- >From: Florian Bezdeka <florian.bezdeka@siemens.com> >Sent: Friday, May 14, 2021 5:11 PM >To: Chen, Hongzhan <hongzhan.chen@intel.com>; xenomai@xenomai.org >Subject: Re: [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips > >On 14.05.21 10:55, Florian Bezdeka via Xenomai wrote: >> On 13.05.21 03:02, hongzha1 via Xenomai wrote: >>> To find array of gpiochips for non-OF platform >>> >>> Signed-off-by: hongzha1 <hongzhan.chen@intel.com> >>> --- >>> include/cobalt/kernel/rtdm/gpio.h | 4 ++++ >>> kernel/drivers/gpio/gpio-core.c | 19 +++++++++++++++++++ >>> 2 files changed, 23 insertions(+) >>> >>> diff --git a/include/cobalt/kernel/rtdm/gpio.h b/include/cobalt/kernel/rtdm/gpio.h >>> index c5fb20f25..99772f558 100644 >>> --- a/include/cobalt/kernel/rtdm/gpio.h >>> +++ b/include/cobalt/kernel/rtdm/gpio.h >>> @@ -64,6 +64,10 @@ int rtdm_gpiochip_post_event(struct rtdm_gpio_chip *rgc, >>> int rtdm_gpiochip_find(struct device_node *from, >>> const char *label, int type); >>> >>> +int rtdm_gpiochip_array_find(struct device_node *from, >>> + const char *compat[], >>> + int nentries, int type); >>> + >>> #ifdef CONFIG_OF >>> >>> int rtdm_gpiochip_scan_of(struct device_node *from, >>> diff --git a/kernel/drivers/gpio/gpio-core.c b/kernel/drivers/gpio/gpio-core.c >>> index b3d801fa1..20a6d7875 100644 >>> --- a/kernel/drivers/gpio/gpio-core.c >>> +++ b/kernel/drivers/gpio/gpio-core.c >>> @@ -543,6 +543,25 @@ int rtdm_gpiochip_find(struct device_node *from, const char *label, >>> } >>> EXPORT_SYMBOL_GPL(rtdm_gpiochip_find); >>> >>> +int rtdm_gpiochip_array_find(struct device_node *from, >>> + const char *compat[], >>> + int nentries, int type) >>> +{ >>> + int ret = -ENODEV, _ret, n; >>> + >>> + for (n = 0; n < nentries; n++) { >>> + _ret = rtdm_gpiochip_find(from, compat[n], type); >>> + if (_ret) { >>> + if (_ret != -ENODEV) >>> + return _ret; >>> + } else >>> + ret = 0; >>> + } >>> + >>> + return ret; >>> +} >> >> I'm not sure if I completely understand the code, but maybe it could be >> simplified to: >> >> { >> int ret, n; >> >> for (n = 0; n < nentries; n++) { > ret = rtdm_gpiochip_find(from, compat[n], type); > > if (ret && ret != -ENODEV) > break; > } > > return ret; > } > >v2: >{ > int ret, n; > > for (n = 0; n < nentries; n++) { > ret = rtdm_gpiochip_find(from, compat[n], type); > > if (ret && ret != -ENODEV) > break; > > // Should we stop on first -ENODEV? > if (ret && ret == -ENODEV) > ret = 0; Thanks for your advices. The code actually is referring to rtdm_gpiochip_scan_array_of function totally but we have to implement helper for Non-of platform to find gpiochip with scanning whole array. Regards Hongzhan Chen > } > > return ret; >} >> >>> +EXPORT_SYMBOL_GPL(rtdm_gpiochip_array_find); >>> + >>> #ifdef CONFIG_OF >>> >>> #include <linux/of_platform.h> >>> >> >> > > >-- >Siemens AG, T RDA IOT >Corporate Competence Center Embedded Linux -----Original Message----- From: Florian Bezdeka <florian.bezdeka@siemens.com> Sent: Friday, May 14, 2021 5:11 PM To: Chen, Hongzhan <hongzhan.chen@intel.com>; xenomai@xenomai.org Subject: Re: [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips On 14.05.21 10:55, Florian Bezdeka via Xenomai wrote: > On 13.05.21 03:02, hongzha1 via Xenomai wrote: >> To find array of gpiochips for non-OF platform >> >> Signed-off-by: hongzha1 <hongzhan.chen@intel.com> >> --- >> include/cobalt/kernel/rtdm/gpio.h | 4 ++++ >> kernel/drivers/gpio/gpio-core.c | 19 +++++++++++++++++++ >> 2 files changed, 23 insertions(+) >> >> diff --git a/include/cobalt/kernel/rtdm/gpio.h b/include/cobalt/kernel/rtdm/gpio.h >> index c5fb20f25..99772f558 100644 >> --- a/include/cobalt/kernel/rtdm/gpio.h >> +++ b/include/cobalt/kernel/rtdm/gpio.h >> @@ -64,6 +64,10 @@ int rtdm_gpiochip_post_event(struct rtdm_gpio_chip *rgc, >> int rtdm_gpiochip_find(struct device_node *from, >> const char *label, int type); >> >> +int rtdm_gpiochip_array_find(struct device_node *from, >> + const char *compat[], >> + int nentries, int type); >> + >> #ifdef CONFIG_OF >> >> int rtdm_gpiochip_scan_of(struct device_node *from, >> diff --git a/kernel/drivers/gpio/gpio-core.c b/kernel/drivers/gpio/gpio-core.c >> index b3d801fa1..20a6d7875 100644 >> --- a/kernel/drivers/gpio/gpio-core.c >> +++ b/kernel/drivers/gpio/gpio-core.c >> @@ -543,6 +543,25 @@ int rtdm_gpiochip_find(struct device_node *from, const char *label, >> } >> EXPORT_SYMBOL_GPL(rtdm_gpiochip_find); >> >> +int rtdm_gpiochip_array_find(struct device_node *from, >> + const char *compat[], >> + int nentries, int type) >> +{ >> + int ret = -ENODEV, _ret, n; >> + >> + for (n = 0; n < nentries; n++) { >> + _ret = rtdm_gpiochip_find(from, compat[n], type); >> + if (_ret) { >> + if (_ret != -ENODEV) >> + return _ret; >> + } else >> + ret = 0; >> + } >> + >> + return ret; >> +} > > I'm not sure if I completely understand the code, but maybe it could be > simplified to: > > { > int ret, n; > > for (n = 0; n < nentries; n++) { > ret = rtdm_gpiochip_find(from, compat[n], type); > > if (ret && ret != -ENODEV) > break; > } > > return ret; > } v2: { int ret, n; for (n = 0; n < nentries; n++) { ret = rtdm_gpiochip_find(from, compat[n], type); if (ret && ret != -ENODEV) break; // Should we stop on first -ENODEV? if (ret && ret == -ENODEV) ret = 0; } return ret; } > >> +EXPORT_SYMBOL_GPL(rtdm_gpiochip_array_find); >> + >> #ifdef CONFIG_OF >> >> #include <linux/of_platform.h> >> > > -- Siemens AG, T RDA IOT Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips 2021-05-13 1:02 ` [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips hongzha1 2021-05-14 8:55 ` Florian Bezdeka @ 2021-05-18 21:25 ` Jan Kiszka 2021-05-18 21:43 ` Jan Kiszka 1 sibling, 1 reply; 9+ messages in thread From: Jan Kiszka @ 2021-05-18 21:25 UTC (permalink / raw) To: hongzha1, xenomai On 13.05.21 03:02, hongzha1 via Xenomai wrote: > To find array of gpiochips for non-OF platform > > Signed-off-by: hongzha1 <hongzhan.chen@intel.com> Just noticed that all your patches carry your user name in the signed-off. You should fix that. Is this correct? Signed-off-by: Hongzhan Chen <hongzhan.chen@intel.com> Also, please make sure that patches carry the extra "From: your name <your@email>" at the top of the commit message. This list server has to mangle the sender, and that means the author on git can become something like "hongzha1 via Xenomai <xenomai@xenomai.org>". You can trigger this injection by providing a dummy address via --from when calling git format-patch. Thanks, Jan -- Siemens AG, T RDA IOT Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips 2021-05-18 21:25 ` Jan Kiszka @ 2021-05-18 21:43 ` Jan Kiszka 2021-05-19 1:34 ` Chen, Hongzhan 0 siblings, 1 reply; 9+ messages in thread From: Jan Kiszka @ 2021-05-18 21:43 UTC (permalink / raw) To: hongzha1, xenomai On 18.05.21 23:25, Jan Kiszka wrote: > On 13.05.21 03:02, hongzha1 via Xenomai wrote: >> To find array of gpiochips for non-OF platform >> >> Signed-off-by: hongzha1 <hongzhan.chen@intel.com> > > Just noticed that all your patches carry your user name in the > signed-off. You should fix that. Is this correct? > > Signed-off-by: Hongzhan Chen <hongzhan.chen@intel.com> > > Also, please make sure that patches carry the extra "From: your name > <your@email>" at the top of the commit message. This list server has to > mangle the sender, and that means the author on git can become something > like "hongzha1 via Xenomai <xenomai@xenomai.org>". You can trigger this > injection by providing a dummy address via --from when calling git > format-patch. > > Thanks, > Jan > Just to clarify: No action need for anything in wip/dovetail if my spelling above is correct - just adjusted all your patches there accordingly. Jan -- Siemens AG, T RDA IOT Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips 2021-05-18 21:43 ` Jan Kiszka @ 2021-05-19 1:34 ` Chen, Hongzhan 0 siblings, 0 replies; 9+ messages in thread From: Chen, Hongzhan @ 2021-05-19 1:34 UTC (permalink / raw) To: Jan Kiszka, xenomai > >-----Original Message----- >From: Jan Kiszka <jan.kiszka@siemens.com> >Sent: Wednesday, May 19, 2021 5:44 AM >To: Chen, Hongzhan <hongzhan.chen@intel.com>; xenomai@xenomai.org >Subject: Re: [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips > >On 18.05.21 23:25, Jan Kiszka wrote: >> On 13.05.21 03:02, hongzha1 via Xenomai wrote: >>> To find array of gpiochips for non-OF platform >>> >>> Signed-off-by: hongzha1 <hongzhan.chen@intel.com> >> >> Just noticed that all your patches carry your user name in the >> signed-off. You should fix that. Is this correct? >> >> Signed-off-by: Hongzhan Chen <hongzhan.chen@intel.com> >> >> Also, please make sure that patches carry the extra "From: your name >> <your@email>" at the top of the commit message. This list server has to >> mangle the sender, and that means the author on git can become something >> like "hongzha1 via Xenomai <xenomai@xenomai.org>". You can trigger this >> injection by providing a dummy address via --from when calling git >> format-patch. >> >> Thanks, >> Jan >> > >Just to clarify: No action need for anything in wip/dovetail if my >spelling above is correct - just adjusted all your patches there >accordingly. Thanks for your kind of reminding and adjustment. Spelling is correct. Regards Hongzhan Chen > >Jan > >-- >Siemens AG, T RDA IOT >Corporate Competence Center Embedded Linux > > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [for-upstream/dovetail 2/2] driver/gpio: cherryview: introduce gpio driver for pinctl Cherryview 2021-05-13 1:02 [for-upstream/dovetail 0/2] Add support for Cherryview GPIO hongzha1 2021-05-13 1:02 ` [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips hongzha1 @ 2021-05-13 1:02 ` hongzha1 1 sibling, 0 replies; 9+ messages in thread From: hongzha1 @ 2021-05-13 1:02 UTC (permalink / raw) To: xenomai Add support for Intel Cherryview pin controller driver Signed-off-by: hongzha1 <hongzhan.chen@intel.com> --- kernel/drivers/gpio/Kconfig | 7 +++++ kernel/drivers/gpio/Makefile | 2 ++ kernel/drivers/gpio/gpio-cherryview.c | 43 +++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 kernel/drivers/gpio/gpio-cherryview.c diff --git a/kernel/drivers/gpio/Kconfig b/kernel/drivers/gpio/Kconfig index 44f41688c..c257444f0 100644 --- a/kernel/drivers/gpio/Kconfig +++ b/kernel/drivers/gpio/Kconfig @@ -57,6 +57,13 @@ config XENO_DRIVERS_GPIO_OMAP Enables support for the GPIO controller available from OMAP family SOC. +config XENO_DRIVERS_GPIO_CHERRYVIEW + depends on PINCTRL_CHERRYVIEW + tristate "Support for Cherryview GPIOs" + help + + Enables support for the Intel Cherryview GPIO controller + config XENO_DRIVERS_GPIO_DEBUG bool "Enable GPIO core debugging features" diff --git a/kernel/drivers/gpio/Makefile b/kernel/drivers/gpio/Makefile index 7bcf59949..e534eab93 100644 --- a/kernel/drivers/gpio/Makefile +++ b/kernel/drivers/gpio/Makefile @@ -6,6 +6,7 @@ obj-$(CONFIG_XENO_DRIVERS_GPIO_SUN8I_H3) += xeno-gpio-sun8i-h3.o obj-$(CONFIG_XENO_DRIVERS_GPIO_ZYNQ7000) += xeno-gpio-zynq7000.o obj-$(CONFIG_XENO_DRIVERS_GPIO_XILINX) += xeno-gpio-xilinx.o obj-$(CONFIG_XENO_DRIVERS_GPIO_OMAP) += xeno-gpio-omap.o +obj-$(CONFIG_XENO_DRIVERS_GPIO_CHERRYVIEW) += xeno-gpio-cherryview.o obj-$(CONFIG_XENO_DRIVERS_GPIO) += gpio-core.o xeno-gpio-bcm2835-y := gpio-bcm2835.o @@ -14,3 +15,4 @@ xeno-gpio-sun8i-h3-y := gpio-sun8i-h3.o xeno-gpio-zynq7000-y := gpio-zynq7000.o xeno-gpio-xilinx-y := gpio-xilinx.o xeno-gpio-omap-y := gpio-omap.o +xeno-gpio-cherryview-y := gpio-cherryview.o diff --git a/kernel/drivers/gpio/gpio-cherryview.c b/kernel/drivers/gpio/gpio-cherryview.c new file mode 100644 index 000000000..e23e13f98 --- /dev/null +++ b/kernel/drivers/gpio/gpio-cherryview.c @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * @note Copyright (C) 2021 Hongzhan Chen <hongzhan.chen@intel.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include <linux/module.h> +#include <rtdm/gpio.h> + +#define RTDM_SUBCLASS_CHERRYVIEW 7 + +static const char *compat_array[] = { + "INT33FF:00", + "INT33FF:01", + "INT33FF:02", + "INT33FF:03", +}; + +static int __init cherryview_gpio_init(void) +{ + return rtdm_gpiochip_array_find(NULL, compat_array, + ARRAY_SIZE(compat_array), + RTDM_SUBCLASS_CHERRYVIEW); +} +module_init(cherryview_gpio_init); + +static void __exit cherryview_gpio_exit(void) +{ + rtdm_gpiochip_remove_of(RTDM_SUBCLASS_CHERRYVIEW); +} +module_exit(cherryview_gpio_exit); + +MODULE_LICENSE("GPL"); + -- 2.17.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-05-19 1:34 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-05-13 1:02 [for-upstream/dovetail 0/2] Add support for Cherryview GPIO hongzha1 2021-05-13 1:02 ` [for-upstream/dovetail 1/2] drivers/gpio: core: introduce helper to find array of gpiochips hongzha1 2021-05-14 8:55 ` Florian Bezdeka 2021-05-14 9:10 ` Florian Bezdeka 2021-05-17 1:15 ` Chen, Hongzhan 2021-05-18 21:25 ` Jan Kiszka 2021-05-18 21:43 ` Jan Kiszka 2021-05-19 1:34 ` Chen, Hongzhan 2021-05-13 1:02 ` [for-upstream/dovetail 2/2] driver/gpio: cherryview: introduce gpio driver for pinctl Cherryview hongzha1
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.