From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751948AbcF1HsS (ORCPT ); Tue, 28 Jun 2016 03:48:18 -0400 Received: from mail-wm0-f49.google.com ([74.125.82.49]:34143 "EHLO mail-wm0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750753AbcF1HsR (ORCPT ); Tue, 28 Jun 2016 03:48:17 -0400 Date: Tue, 28 Jun 2016 08:49:08 +0100 From: Lee Jones To: Yoshinori Sato Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH] sm501: Add device property Message-ID: <20160628074908.GI6720@dell> References: <1467097170-6087-1-git-send-email-ysato@users.sourceforge.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1467097170-6087-1-git-send-email-ysato@users.sourceforge.jp> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 28 Jun 2016, Yoshinori Sato wrote: > This driver have configuration parameter "device" in platform_data. > But don't have it in devicetree. > > This patch add "device" configuration to devicetree. This is really ugly. 1. Where are you documenting the binding? 2. Just because it's in platform data, it doesn't mean it lives in DT 3. Does this code even work? Won't private_platdata get freed when you leave probe()? 4. Where is 'devices' consumed? > Signed-off-by: Yoshinori Sato > --- > drivers/mfd/sm501.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c > index 65cd0d2..e2e3f9b 100644 > --- a/drivers/mfd/sm501.c > +++ b/drivers/mfd/sm501.c > @@ -21,6 +21,7 @@ > #include > #include > #include > +#include > > #include > #include > @@ -1377,6 +1378,8 @@ static int sm501_plat_probe(struct platform_device *dev) > { > struct sm501_devdata *sm; > int ret; > + struct sm501_platdata private_platdata; > + struct sm501_initdata private_initdata; > > sm = kzalloc(sizeof(struct sm501_devdata), GFP_KERNEL); > if (sm == NULL) { > @@ -1388,6 +1391,12 @@ static int sm501_plat_probe(struct platform_device *dev) > sm->dev = &dev->dev; > sm->pdev_id = dev->id; > sm->platdata = dev_get_platdata(&dev->dev); > + if (!sm->platdata) { > + of_property_read_u32(dev->dev.of_node, "smi,devices", > + (u32 *)&private_initdata.devices); > + private_platdata.init = &private_initdata; > + sm->platdata = &private_platdata; > + } > > ret = platform_get_irq(dev, 0); > if (ret < 0) { -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog