From 36a9b5317c58a1cdcb8a6fa05416efd524480fbe Mon Sep 17 00:00:00 2001 From: Andrey Gusakov Date: Wed, 2 Aug 2017 17:39:56 +0300 Subject: [PATCH] ti-st: use proper way to get shutdown gpio Signed-off-by: Andrey Gusakov --- drivers/misc/ti-st/st_kim.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/drivers/misc/ti-st/st_kim.c b/drivers/misc/ti-st/st_kim.c index cb2734568471..03b21d314b0b 100644 --- a/drivers/misc/ti-st/st_kim.c +++ b/drivers/misc/ti-st/st_kim.c @@ -32,6 +32,8 @@ #include #include #include +#include +#include #include #include @@ -749,18 +751,29 @@ static struct ti_st_plat_data *get_platform_data(struct device *dev) dt_pdata = kzalloc(sizeof(*dt_pdata), GFP_KERNEL); - if (!dt_pdata) + if (!dt_pdata) { pr_err("Can't allocate device_tree platform data\n"); + return NULL; + } dt_property = of_get_property(np, "dev_name", &len); - if (dt_property) - memcpy(&dt_pdata->dev_name, dt_property, len); - of_property_read_u32(np, "nshutdown_gpio", - (u32 *)&dt_pdata->nshutdown_gpio); + if (!dt_property) { + dev_err(dev, "failed to get tty name\n"); + goto err; + } + memcpy(&dt_pdata->dev_name, dt_property, len); + dt_pdata->nshutdown_gpio = of_get_named_gpio(np, "shutdown-gpios", 0); + if (!gpio_is_valid(dt_pdata->nshutdown_gpio)) { + dev_err(dev, "failed to get shutdown gpio\n"); + goto err; + } of_property_read_u32(np, "flow_cntrl", (u32 *)&dt_pdata->flow_cntrl); of_property_read_u32(np, "baud_rate", (u32 *)&dt_pdata->baud_rate); return dt_pdata; +err: + kfree(dt_pdata); + return NULL; } static struct dentry *kim_debugfs_dir; -- 2.13.0