Use the gpiod interface instead of the deprecated old non-descriptor interface.
Signed-off-by: Nishad Kamdar nishadkamdar@gmail.com --- drivers/staging/greybus/arche-platform.c | 120 ++++++++--------------- 1 file changed, 42 insertions(+), 78 deletions(-)
diff --git a/drivers/staging/greybus/arche-platform.c b/drivers/staging/greybus/arche-platform.c index 4c36e88766e7..a826a1835628 100644 --- a/drivers/staging/greybus/arche-platform.c +++ b/drivers/staging/greybus/arche-platform.c @@ -8,10 +8,9 @@
#include <linux/clk.h> #include <linux/delay.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/init.h> #include <linux/module.h> -#include <linux/of_gpio.h> #include <linux/of_platform.h> #include <linux/pinctrl/consumer.h> #include <linux/platform_device.h> @@ -45,14 +44,15 @@ enum svc_wakedetect_state {
struct arche_platform_drvdata { /* Control GPIO signals to and from AP <=> SVC */ - int svc_reset_gpio; + struct gpio_desc *svc_reset; + struct gpio_desc *svc_sysboot; bool is_reset_act_hi; - int svc_sysboot_gpio; - int wake_detect_gpio; /* bi-dir,maps to WAKE_MOD & WAKE_FRAME signals */ + struct gpio_desc *wake_detect; + /* bi-dir,maps to WAKE_MOD & WAKE_FRAME signals */
enum arche_platform_state state;
- int svc_refclk_req; + struct gpio_desc *svc_refclk_req; struct clk *svc_ref_clk;
struct pinctrl *pinctrl; @@ -85,9 +85,9 @@ static void arche_platform_set_wake_detect_state( arche_pdata->wake_detect_state = state; }
-static inline void svc_reset_onoff(unsigned int gpio, bool onoff) +static inline void svc_reset_onoff(struct gpio_desc *gpio, bool onoff) { - gpio_set_value(gpio, onoff); + gpiod_set_value(gpio, onoff); }
static int apb_cold_boot(struct device *dev, void *data) @@ -116,7 +116,6 @@ static int apb_poweroff(struct device *dev, void *data) static void arche_platform_wd_irq_en(struct arche_platform_drvdata *arche_pdata) { /* Enable interrupt here, to read event back from SVC */ - gpio_direction_input(arche_pdata->wake_detect_gpio); enable_irq(arche_pdata->wake_detect_irq); }
@@ -160,7 +159,7 @@ static irqreturn_t arche_platform_wd_irq(int irq, void *devid)
spin_lock_irqsave(&arche_pdata->wake_lock, flags);
- if (gpio_get_value(arche_pdata->wake_detect_gpio)) { + if (gpiod_get_value(arche_pdata->wake_detect)) { /* wake/detect rising */
/* @@ -224,10 +223,10 @@ arche_platform_coldboot_seq(struct arche_platform_drvdata *arche_pdata)
dev_info(arche_pdata->dev, "Booting from cold boot state\n");
- svc_reset_onoff(arche_pdata->svc_reset_gpio, + svc_reset_onoff(arche_pdata->svc_reset, arche_pdata->is_reset_act_hi);
- gpio_set_value(arche_pdata->svc_sysboot_gpio, 0); + gpiod_set_value(arche_pdata->svc_sysboot, 0); usleep_range(100, 200);
ret = clk_prepare_enable(arche_pdata->svc_ref_clk); @@ -238,7 +237,7 @@ arche_platform_coldboot_seq(struct arche_platform_drvdata *arche_pdata) }
/* bring SVC out of reset */ - svc_reset_onoff(arche_pdata->svc_reset_gpio, + svc_reset_onoff(arche_pdata->svc_reset, !arche_pdata->is_reset_act_hi);
arche_platform_set_state(arche_pdata, ARCHE_PLATFORM_STATE_ACTIVE); @@ -259,10 +258,10 @@ arche_platform_fw_flashing_seq(struct arche_platform_drvdata *arche_pdata)
dev_info(arche_pdata->dev, "Switching to FW flashing state\n");
- svc_reset_onoff(arche_pdata->svc_reset_gpio, + svc_reset_onoff(arche_pdata->svc_reset, arche_pdata->is_reset_act_hi);
- gpio_set_value(arche_pdata->svc_sysboot_gpio, 1); + gpiod_set_value(arche_pdata->svc_sysboot, 1);
usleep_range(100, 200);
@@ -273,7 +272,7 @@ arche_platform_fw_flashing_seq(struct arche_platform_drvdata *arche_pdata) return ret; }
- svc_reset_onoff(arche_pdata->svc_reset_gpio, + svc_reset_onoff(arche_pdata->svc_reset, !arche_pdata->is_reset_act_hi);
arche_platform_set_state(arche_pdata, ARCHE_PLATFORM_STATE_FW_FLASHING); @@ -305,7 +304,7 @@ arche_platform_poweroff_seq(struct arche_platform_drvdata *arche_pdata) clk_disable_unprepare(arche_pdata->svc_ref_clk);
/* As part of exit, put APB back in reset state */ - svc_reset_onoff(arche_pdata->svc_reset_gpio, + svc_reset_onoff(arche_pdata->svc_reset, arche_pdata->is_reset_act_hi);
arche_platform_set_state(arche_pdata, ARCHE_PLATFORM_STATE_OFF); @@ -435,6 +434,7 @@ static int arche_platform_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; int ret; + unsigned int flags;
arche_pdata = devm_kzalloc(&pdev->dev, sizeof(*arche_pdata), GFP_KERNEL); @@ -444,61 +444,33 @@ static int arche_platform_probe(struct platform_device *pdev) /* setup svc reset gpio */ arche_pdata->is_reset_act_hi = of_property_read_bool(np, "svc,reset-active-high"); - arche_pdata->svc_reset_gpio = of_get_named_gpio(np, - "svc,reset-gpio", - 0); - if (!gpio_is_valid(arche_pdata->svc_reset_gpio)) { - dev_err(dev, "failed to get reset-gpio\n"); - return arche_pdata->svc_reset_gpio; - } - ret = devm_gpio_request(dev, arche_pdata->svc_reset_gpio, "svc-reset"); - if (ret) { - dev_err(dev, "failed to request svc-reset gpio:%d\n", ret); - return ret; - } - ret = gpio_direction_output(arche_pdata->svc_reset_gpio, - arche_pdata->is_reset_act_hi); - if (ret) { - dev_err(dev, "failed to set svc-reset gpio dir:%d\n", ret); + if (arche_pdata->is_reset_act_hi) + flags = GPIOD_OUT_HIGH; + else + flags = GPIOD_OUT_LOW; + + arche_pdata->svc_reset = devm_gpiod_get(dev, "svc,reset-gpio", flags); + if (IS_ERR(arche_pdata->svc_reset)) { + ret = PTR_ERR(arche_pdata->svc_reset); + dev_err(dev, "failed to request svc-reset GPIO:%d\n", ret); return ret; } arche_platform_set_state(arche_pdata, ARCHE_PLATFORM_STATE_OFF);
- arche_pdata->svc_sysboot_gpio = of_get_named_gpio(np, - "svc,sysboot-gpio", - 0); - if (!gpio_is_valid(arche_pdata->svc_sysboot_gpio)) { - dev_err(dev, "failed to get sysboot gpio\n"); - return arche_pdata->svc_sysboot_gpio; - } - ret = devm_gpio_request(dev, arche_pdata->svc_sysboot_gpio, "sysboot0"); - if (ret) { - dev_err(dev, "failed to request sysboot0 gpio:%d\n", ret); - return ret; - } - ret = gpio_direction_output(arche_pdata->svc_sysboot_gpio, 0); - if (ret) { - dev_err(dev, "failed to set svc-reset gpio dir:%d\n", ret); + arche_pdata->svc_sysboot = devm_gpiod_get(dev, "svc,sysboot-gpio", + GPIOD_OUT_LOW); + if (IS_ERR(arche_pdata->svc_sysboot)) { + ret = PTR_ERR(arche_pdata->svc_sysboot); + dev_err(dev, "failed to request sysboot0 GPIO: %d\n", ret); return ret; }
/* setup the clock request gpio first */ - arche_pdata->svc_refclk_req = of_get_named_gpio(np, - "svc,refclk-req-gpio", - 0); - if (!gpio_is_valid(arche_pdata->svc_refclk_req)) { - dev_err(dev, "failed to get svc clock-req gpio\n"); - return arche_pdata->svc_refclk_req; - } - ret = devm_gpio_request(dev, arche_pdata->svc_refclk_req, - "svc-clk-req"); - if (ret) { - dev_err(dev, "failed to request svc-clk-req gpio: %d\n", ret); - return ret; - } - ret = gpio_direction_input(arche_pdata->svc_refclk_req); - if (ret) { - dev_err(dev, "failed to set svc-clk-req gpio dir :%d\n", ret); + arche_pdata->svc_refclk_req = devm_gpiod_get(dev, "svc,refclk-req-gpio", + GPIOD_IN); + if (IS_ERR(arche_pdata->svc_refclk_req)) { + ret = PTR_ERR(arche_pdata->svc_refclk_req); + dev_err(dev, "failed to request svc-clk-req GPIO: %d\n", ret); return ret; }
@@ -515,19 +487,11 @@ static int arche_platform_probe(struct platform_device *pdev) arche_pdata->num_apbs = of_get_child_count(np); dev_dbg(dev, "Number of APB's available - %d\n", arche_pdata->num_apbs);
- arche_pdata->wake_detect_gpio = of_get_named_gpio(np, - "svc,wake-detect-gpio", - 0); - if (arche_pdata->wake_detect_gpio < 0) { - dev_err(dev, "failed to get wake detect gpio\n"); - return arche_pdata->wake_detect_gpio; - } - - ret = devm_gpio_request(dev, arche_pdata->wake_detect_gpio, - "wake detect"); - if (ret) { - dev_err(dev, "Failed requesting wake_detect gpio %d\n", - arche_pdata->wake_detect_gpio); + arche_pdata->wake_detect = devm_gpiod_get(dev, "svc,wake-detect-gpio", + GPIOD_IN); + if (IS_ERR(arche_pdata->wake_detect)) { + ret = PTR_ERR(arche_pdata->wake_detect); + dev_err(dev, "Failed requesting wake_detect GPIO %d\n", ret); return ret; }
@@ -538,7 +502,7 @@ static int arche_platform_probe(struct platform_device *pdev) spin_lock_init(&arche_pdata->wake_lock); mutex_init(&arche_pdata->platform_state_mutex); arche_pdata->wake_detect_irq = - gpio_to_irq(arche_pdata->wake_detect_gpio); + gpiod_to_irq(arche_pdata->wake_detect);
ret = devm_request_threaded_irq(dev, arche_pdata->wake_detect_irq, arche_platform_wd_irq,
On Fri, Nov 16, 2018 at 08:47:44PM +0530, Nishad Kamdar wrote:
Use the gpiod interface instead of the deprecated old non-descriptor interface.
Signed-off-by: Nishad Kamdar nishadkamdar@gmail.com
Always include a change log here after the cut-off line so we know what changed since previous versions.
Also include the patch revision in the Subject (e.g. "[PATCH v3] staging: greybus: ...").
drivers/staging/greybus/arche-platform.c | 120 ++++++++--------------- 1 file changed, 42 insertions(+), 78 deletions(-)
diff --git a/drivers/staging/greybus/arche-platform.c b/drivers/staging/greybus/arche-platform.c index 4c36e88766e7..a826a1835628 100644 --- a/drivers/staging/greybus/arche-platform.c +++ b/drivers/staging/greybus/arche-platform.c @@ -8,10 +8,9 @@ #include <linux/clk.h> #include <linux/delay.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/init.h> #include <linux/module.h> -#include <linux/of_gpio.h> #include <linux/of_platform.h> #include <linux/pinctrl/consumer.h> #include <linux/platform_device.h> @@ -45,14 +44,15 @@ enum svc_wakedetect_state { struct arche_platform_drvdata { /* Control GPIO signals to and from AP <=> SVC */
- int svc_reset_gpio;
- struct gpio_desc *svc_reset;
- struct gpio_desc *svc_sysboot; bool is_reset_act_hi;
- int svc_sysboot_gpio;
- int wake_detect_gpio; /* bi-dir,maps to WAKE_MOD & WAKE_FRAME signals */
- struct gpio_desc *wake_detect;
- /* bi-dir,maps to WAKE_MOD & WAKE_FRAME signals */
I'm not commenting on the rest, but comments never go underneath what they apply to.
Just keep the current comment here, even if it's placement is a bit odd and makes the line be longer than 80 cols.
Johan
On Fri, Nov 16, 2018 at 05:06:22PM +0100, Johan Hovold wrote:
On Fri, Nov 16, 2018 at 08:47:44PM +0530, Nishad Kamdar wrote:
Use the gpiod interface instead of the deprecated old non-descriptor interface.
Signed-off-by: Nishad Kamdar nishadkamdar@gmail.com
Always include a change log here after the cut-off line so we know what changed since previous versions.
Also include the patch revision in the Subject (e.g. "[PATCH v3] staging: greybus: ...").
Ok, but this is the first patch version that I submitted for greybus: arche-platform.
drivers/staging/greybus/arche-platform.c | 120 ++++++++--------------- 1 file changed, 42 insertions(+), 78 deletions(-)
diff --git a/drivers/staging/greybus/arche-platform.c b/drivers/staging/greybus/arche-platform.c index 4c36e88766e7..a826a1835628 100644 --- a/drivers/staging/greybus/arche-platform.c +++ b/drivers/staging/greybus/arche-platform.c @@ -8,10 +8,9 @@ #include <linux/clk.h> #include <linux/delay.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/init.h> #include <linux/module.h> -#include <linux/of_gpio.h> #include <linux/of_platform.h> #include <linux/pinctrl/consumer.h> #include <linux/platform_device.h> @@ -45,14 +44,15 @@ enum svc_wakedetect_state { struct arche_platform_drvdata { /* Control GPIO signals to and from AP <=> SVC */
- int svc_reset_gpio;
- struct gpio_desc *svc_reset;
- struct gpio_desc *svc_sysboot; bool is_reset_act_hi;
- int svc_sysboot_gpio;
- int wake_detect_gpio; /* bi-dir,maps to WAKE_MOD & WAKE_FRAME signals */
- struct gpio_desc *wake_detect;
- /* bi-dir,maps to WAKE_MOD & WAKE_FRAME signals */
I'm not commenting on the rest, but comments never go underneath what they apply to.
Just keep the current comment here, even if it's placement is a bit odd and makes the line be longer than 80 cols.
Johan
Ok, I'll keep that in mind.
Thanks for the review.
thanks and regards, Nishad
On Sat, Nov 17, 2018 at 12:41:11PM +0530, Nishad Kamdar wrote:
On Fri, Nov 16, 2018 at 05:06:22PM +0100, Johan Hovold wrote:
On Fri, Nov 16, 2018 at 08:47:44PM +0530, Nishad Kamdar wrote:
Use the gpiod interface instead of the deprecated old non-descriptor interface.
Signed-off-by: Nishad Kamdar nishadkamdar@gmail.com
Always include a change log here after the cut-off line so we know what changed since previous versions.
Also include the patch revision in the Subject (e.g. "[PATCH v3] staging: greybus: ...").
Ok, but this is the first patch version that I submitted for greybus: arche-platform.
Ah, sorry. I thought this was an update of the arche-apb-ctrl patch.
Johan
On Sat, Nov 17, 2018 at 04:40:27PM +0100, Johan Hovold wrote:
On Sat, Nov 17, 2018 at 12:41:11PM +0530, Nishad Kamdar wrote:
On Fri, Nov 16, 2018 at 05:06:22PM +0100, Johan Hovold wrote:
On Fri, Nov 16, 2018 at 08:47:44PM +0530, Nishad Kamdar wrote:
Use the gpiod interface instead of the deprecated old non-descriptor interface.
Signed-off-by: Nishad Kamdar nishadkamdar@gmail.com
Always include a change log here after the cut-off line so we know what changed since previous versions.
Also include the patch revision in the Subject (e.g. "[PATCH v3] staging: greybus: ...").
Ok, but this is the first patch version that I submitted for greybus: arche-platform.
Ah, sorry. I thought this was an update of the arche-apb-ctrl patch.
Me too.
I am totally confused as to what is, and is not, the latest versions of all of these patches :(
Nishad, can you resend all of your pending greybus patches, as a patch series, as "v3" so that I know which to properly review? I've dropped all of your others from my review queue now.
thanks,
greg k-h
On Tue, Nov 20, 2018 at 10:49:54AM +0100, Greg Kroah-Hartman wrote:
On Sat, Nov 17, 2018 at 04:40:27PM +0100, Johan Hovold wrote:
On Sat, Nov 17, 2018 at 12:41:11PM +0530, Nishad Kamdar wrote:
On Fri, Nov 16, 2018 at 05:06:22PM +0100, Johan Hovold wrote:
On Fri, Nov 16, 2018 at 08:47:44PM +0530, Nishad Kamdar wrote:
Use the gpiod interface instead of the deprecated old non-descriptor interface.
Signed-off-by: Nishad Kamdar nishadkamdar@gmail.com
Always include a change log here after the cut-off line so we know what changed since previous versions.
Also include the patch revision in the Subject (e.g. "[PATCH v3] staging: greybus: ...").
Ok, but this is the first patch version that I submitted for greybus: arche-platform.
Ah, sorry. I thought this was an update of the arche-apb-ctrl patch.
Me too.
I am totally confused as to what is, and is not, the latest versions of all of these patches :(
Nishad, can you resend all of your pending greybus patches, as a patch series, as "v3" so that I know which to properly review? I've dropped all of your others from my review queue now.
thanks,
greg k-h
Ok, I'll do that.
Thanks for the review.
Regards, Nishad