{"id":1267792,"url":"http://patchwork.ozlabs.org/api/patches/1267792/?format=json","web_url":"http://patchwork.ozlabs.org/project/rtc-linux/patch/1586333531-21641-3-git-send-email-hsin-hsiung.wang@mediatek.com/","project":{"id":9,"url":"http://patchwork.ozlabs.org/api/projects/9/?format=json","name":"Linux RTC development","link_name":"rtc-linux","list_id":"linux-rtc.vger.kernel.org","list_email":"linux-rtc@vger.kernel.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1586333531-21641-3-git-send-email-hsin-hsiung.wang@mediatek.com>","list_archive_url":null,"date":"2020-04-08T08:12:07","name":"[v12,2/6] mfd: mt6397: Trim probe function to support different chips more cleanly","commit_ref":null,"pull_url":null,"state":"not-applicable","archived":false,"hash":"1fde8fe96183b5ffcd73aa12c958bc1c9c67deb4","submitter":{"id":74946,"url":"http://patchwork.ozlabs.org/api/people/74946/?format=json","name":"Hsin-Hsiung Wang","email":"hsin-hsiung.wang@mediatek.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/rtc-linux/patch/1586333531-21641-3-git-send-email-hsin-hsiung.wang@mediatek.com/mbox/","series":[{"id":169156,"url":"http://patchwork.ozlabs.org/api/series/169156/?format=json","web_url":"http://patchwork.ozlabs.org/project/rtc-linux/list/?series=169156","date":"2020-04-08T08:12:06","name":"Add Support for MediaTek PMIC MT6358","version":12,"mbox":"http://patchwork.ozlabs.org/series/169156/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/1267792/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/1267792/checks/","tags":{},"related":[],"headers":{"Return-Path":"<linux-rtc-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org; spf=none (no SPF record)\n\tsmtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67;\n\thelo=vger.kernel.org;\n\tenvelope-from=linux-rtc-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dmarc=pass (p=none dis=none)\n\theader.from=mediatek.com","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=mediatek.com header.i=@mediatek.com\n\theader.a=rsa-sha256 header.s=dk header.b=H/wN0dz1; \n\tdkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 48xxqX5km5z9sSv\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed,  8 Apr 2020 18:13:28 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1726687AbgDHIM6 (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tWed, 8 Apr 2020 04:12:58 -0400","from mailgw02.mediatek.com ([210.61.82.184]:63866 \"EHLO\n\tmailgw02.mediatek.com\" rhost-flags-OK-FAIL-OK-FAIL) by\n\tvger.kernel.org with ESMTP id S1726642AbgDHIM6 (ORCPT\n\t<rfc822;linux-rtc@vger.kernel.org>); Wed, 8 Apr 2020 04:12:58 -0400","from mtkcas06.mediatek.inc [(172.21.101.30)] by\n\tmailgw02.mediatek.com\n\t(envelope-from <hsin-hsiung.wang@mediatek.com>)\n\t(Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS)\n\twith ESMTP id 1789487845; Wed, 08 Apr 2020 16:12:53 +0800","from MTKCAS06.mediatek.inc (172.21.101.30) by\n\tmtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server\n\t(TLS) id 15.0.1497.2; Wed, 8 Apr 2020 16:12:49 +0800","from mtksdaap41.mediatek.inc (172.21.77.4) by MTKCAS06.mediatek.inc\n\t(172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via\n\tFrontend Transport; Wed, 8 Apr 2020 16:12:49 +0800"],"X-UUID":["49c8344e8e514be39abfa3c965f19bb2-20200408","49c8344e8e514be39abfa3c965f19bb2-20200408"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=mediatek.com; s=dk; \n\th=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From;\n\tbh=fGKVeJMpPPedNFBW5Z89bG65lS398KakOP6xziYFSsc=; \n\tb=H/wN0dz1gaqTobfimzYR8IcVbDrcAEc+451udtbn5nGthbYmyHpLBNWt3qwMELR5o4EEPa8qBPxBBSsBHG9eV7lX0FMrMlX0grVeap7U+CFrbUVL1l4UykufPFu+Sd9+/keuGgzBd5wRfQx0QFTrkmYvzVd/4n8na8gTunRcALI=;","From":"Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>","To":"Lee Jones <lee.jones@linaro.org>, Rob Herring <robh+dt@kernel.org>,\n\tMatthias Brugger <matthias.bgg@gmail.com>,\n\tAlexandre Belloni <alexandre.belloni@bootlin.com>","CC":"Nicolas Boichat <drinkcat@chromium.org>,\n\tMark Rutland <mark.rutland@arm.com>, Sean Wang <sean.wang@mediatek.com>,\n\tSebastian Reichel <sre@kernel.org>,\n\tEddie Huang <eddie.huang@mediatek.com>,\n\tAlessandro Zummo <a.zummo@towertech.it>,\n\tKate Stewart <kstewart@linuxfoundation.org>,\n\tRichard Fontana <rfontana@redhat.com>,\n\tFrank Wunderlich <frank-w@public-files.de>,\n\tJosef Friedl <josef.friedl@speed.at>,\n\tThomas Gleixner <tglx@linutronix.de>,\n\tHsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>,\n\tRan Bi <ran.bi@mediatek.com>, <devicetree@vger.kernel.org>,\n\t<linux-arm-kernel@lists.infradead.org>,\n\t<linux-mediatek@lists.infradead.org>,\n\t<linux-kernel@vger.kernel.org>, <linux-pm@vger.kernel.org>,\n\t<linux-rtc@vger.kernel.org>, <srv_heupstream@mediatek.com>","Subject":"[PATCH v12 2/6] mfd: mt6397: Trim probe function to support\n\tdifferent chips more cleanly","Date":"Wed, 8 Apr 2020 16:12:07 +0800","Message-ID":"<1586333531-21641-3-git-send-email-hsin-hsiung.wang@mediatek.com>","X-Mailer":"git-send-email 2.6.4","In-Reply-To":"<1586333531-21641-1-git-send-email-hsin-hsiung.wang@mediatek.com>","References":"<1586333531-21641-1-git-send-email-hsin-hsiung.wang@mediatek.com>","MIME-Version":"1.0","Content-Type":"text/plain","X-TM-SNTS-SMTP":"FEDB43AB2ACB42064A2DB5C5D7CC07444166C3514C64B30D112F886F1894AF732000:8","X-MTK":"N","Content-Transfer-Encoding":"base64","Sender":"linux-rtc-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-rtc.vger.kernel.org>","X-Mailing-List":"linux-rtc@vger.kernel.org"},"content":"Add new struct members for mfd-cells and irq initial function, so we can\ncall devm_mfd_add_devices() only once.\n\nSigned-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>\n---\n drivers/mfd/mt6397-core.c | 35 ++++++++++++++---------------------\n 1 file changed, 14 insertions(+), 21 deletions(-)","diff":"diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c\r\nindex d2e70d8..a313a72 100644\r\n--- a/drivers/mfd/mt6397-core.c\r\n+++ b/drivers/mfd/mt6397-core.c\r\n@@ -103,22 +103,31 @@ static const struct mfd_cell mt6397_devs[] = {\r\n struct chip_data {\r\n \tu32 cid_addr;\r\n \tu32 cid_shift;\r\n+\tconst struct mfd_cell *cells;\r\n+\tint cell_size;\r\n+\tint (*irq_init)(struct mt6397_chip *chip);\r\n };\r\n \r\n static const struct chip_data mt6323_core = {\r\n \t.cid_addr = MT6323_CID,\r\n \t.cid_shift = 0,\r\n+\t.cells = mt6323_devs,\r\n+\t.cell_size = ARRAY_SIZE(mt6323_devs),\r\n+\t.irq_init = mt6397_irq_init,\r\n };\r\n \r\n static const struct chip_data mt6397_core = {\r\n \t.cid_addr = MT6397_CID,\r\n \t.cid_shift = 0,\r\n+\t.cells = mt6397_devs,\r\n+\t.cell_size = ARRAY_SIZE(mt6397_devs),\r\n+\t.irq_init = mt6397_irq_init,\r\n };\r\n \r\n static int mt6397_probe(struct platform_device *pdev)\r\n {\r\n \tint ret;\r\n-\tunsigned int id;\r\n+\tunsigned int id = 0;\r\n \tstruct mt6397_chip *pmic;\r\n \tconst struct chip_data *pmic_core;\r\n \r\n@@ -154,29 +163,13 @@ static int mt6397_probe(struct platform_device *pdev)\r\n \tif (pmic->irq <= 0)\r\n \t\treturn pmic->irq;\r\n \r\n-\tret = mt6397_irq_init(pmic);\r\n+\tret = pmic_core->irq_init(pmic);\r\n \tif (ret)\r\n \t\treturn ret;\r\n \r\n-\tswitch (pmic->chip_id) {\r\n-\tcase MT6323_CHIP_ID:\r\n-\t\tret = devm_mfd_add_devices(&pdev->dev, PLATFORM_DEVID_NONE,\r\n-\t\t\t\t\t   mt6323_devs, ARRAY_SIZE(mt6323_devs),\r\n-\t\t\t\t\t   NULL, 0, pmic->irq_domain);\r\n-\t\tbreak;\r\n-\r\n-\tcase MT6391_CHIP_ID:\r\n-\tcase MT6397_CHIP_ID:\r\n-\t\tret = devm_mfd_add_devices(&pdev->dev, PLATFORM_DEVID_NONE,\r\n-\t\t\t\t\t   mt6397_devs, ARRAY_SIZE(mt6397_devs),\r\n-\t\t\t\t\t   NULL, 0, pmic->irq_domain);\r\n-\t\tbreak;\r\n-\r\n-\tdefault:\r\n-\t\tdev_err(&pdev->dev, \"unsupported chip: %d\\n\", pmic->chip_id);\r\n-\t\treturn -ENODEV;\r\n-\t}\r\n-\r\n+\tret = devm_mfd_add_devices(&pdev->dev, PLATFORM_DEVID_NONE,\r\n+\t\t\t\t   pmic_core->cells, pmic_core->cell_size,\r\n+\t\t\t\t   NULL, 0, pmic->irq_domain);\r\n \tif (ret) {\r\n \t\tirq_domain_remove(pmic->irq_domain);\r\n \t\tdev_err(&pdev->dev, \"failed to add child devices: %d\\n\", ret);\r\n","prefixes":["v12","2/6"]}