From patchwork Fri Jan 4 05:38:59 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajeshwari Birje X-Patchwork-Id: 209368 X-Patchwork-Delegate: promsoft@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id CF1F52C0040 for ; Fri, 4 Jan 2013 16:33:01 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id A333A4A088; Fri, 4 Jan 2013 06:32:55 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NtnxEL01JNxN; Fri, 4 Jan 2013 06:32:55 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id EDD9C4A092; Fri, 4 Jan 2013 06:32:30 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 67D0B4A04C for ; Fri, 4 Jan 2013 06:32:25 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2no3wQXqrj9b for ; Fri, 4 Jan 2013 06:32:24 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by theia.denx.de (Postfix) with ESMTP id 7B4524A04E for ; Fri, 4 Jan 2013 06:32:23 +0100 (CET) Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MG300B7860SDT20@mailout4.samsung.com> for u-boot@lists.denx.de; Fri, 04 Jan 2013 14:32:17 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.126]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 77.1E.01231.16966E05; Fri, 04 Jan 2013 14:32:17 +0900 (KST) X-AuditID: cbfee61a-b7fa66d0000004cf-e2-50e66961423c Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 07.1E.01231.16966E05; Fri, 04 Jan 2013 14:32:17 +0900 (KST) Received: from rajeshwari-linux.sisodomain.com ([107.108.215.115]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MG300LZU61EH870@mmp1.samsung.com> for u-boot@lists.denx.de; Fri, 04 Jan 2013 14:32:17 +0900 (KST) From: Rajeshwari Shinde To: u-boot@lists.denx.de Date: Fri, 04 Jan 2013 11:08:59 +0530 Message-id: <1357277939-3033-4-git-send-email-rajeshwari.s@samsung.com> X-Mailer: git-send-email 1.7.4.4 In-reply-to: <1357277939-3033-1-git-send-email-rajeshwari.s@samsung.com> References: <1357277939-3033-1-git-send-email-rajeshwari.s@samsung.com> DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrLLMWRmVeSWpSXmKPExsWyRsSkTjcx81mAwbojOhZv93ayOzB6nL2z gzGAMYrLJiU1J7MstUjfLoErY9//a8wFm/grXn68wtLAuJ6ni5GTQ0LAROLEtBdMELaYxIV7 69m6GLk4hASWMkrs/bmEEaZo455fzBCJRYwSj5+cZIFwVjFJvFx7hQ2kik3ASGLryWlgHSIC EhK/+q+C2cwCJRLfvnWzgtjCAuYSG9b8AouzCKhK9HXfBOvlFXCX+HLtERvENgWJY1O/gtVz CnhIHF3eC3aeEFDNxf47LBC9AhLfJh8CsjmA6mUlNh0AO05C4DKbxKK561kg5khKHFxxg2UC o/ACRoZVjKKpBckFxUnpuYZ6xYm5xaV56XrJ+bmbGIFhePrfM6kdjCsbLA4xCnAwKvHwWt55 GiDEmlhWXJl7iFGCg1lJhPez9rMAId6UxMqq1KL8+KLSnNTiQ4w+QJdMZJYSTc4HxkheSbyh sYm5qbGppZGRmakpDmElcV7GU08ChATSE0tSs1NTC1KLYMYxcXBKNTBOmX6/9U+E+7IjOasi f+w3y9e4ceLZlv8iOipmtXzfJ0k+Dp0SeH8Py63zUfzNEb9L9XlYRdcUz5i2Lvqj59LmS99n zhIrvTplo2+CyeePb3YfTc04frre2ifdlXXJoVbJ5a/7VprmKJ5ZULZhQ3zjwSD+7d0W/nEP Rer+7i0Rm3qs3EmxwP2dEktxRqKhFnNRcSIAMcVwhnACAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeLIzCtJLcpLzFFi42I5/e+xgG5i5rMAg9OnlCze7u1kd2D0OHtn B2MAY1QDo01GamJKapFCal5yfkpmXrqtkndwvHO8qZmBoa6hpYW5kkJeYm6qrZKLT4CuW2YO 0FglhbLEnFKgUEBicbGSvh2mCaEhbroWMI0Rur4hQXA9RgZoIGENY8a+/9eYCzbxV7z8eIWl gXE9TxcjJ4eEgInExj2/mCFsMYkL99azdTFycQgJLGKUePzkJAuEs4pJ4uXaK2wgVWwCRhJb T05jBLFFBCQkfvVfBbOZBUokvn3rZgWxhQXMJTas+QUWZxFQlejrvgnWyyvgLvHl2iM2iG0K EsemfgWr5xTwkDi6vJcJxBYCqrnYf4dlAiPvAkaGVYyiqQXJBcVJ6bmGesWJucWleel6yfm5 mxjBQf5MagfjygaLQ4wCHIxKPLyWd54GCLEmlhVX5h5ilOBgVhLh/az9LECINyWxsiq1KD++ qDQntfgQow/QVROZpUST84ERmFcSb2hsYm5qbGppYmFiZolDWEmcl/HUkwAhgfTEktTs1NSC 1CKYcUwcnFINjEvrNI8aWbyMDFo79/uEs2VVC+pYF+iEawblvCrdfdP4f9m3TdHsOmfdK0Mu 76kS7guR03z/he/vvPLUikSBoBP+SiH7H8xaUa8aE/fCfcnt8H+zExm31/h/FFyQ55jftFLx Ru+WVy6n5nLbHFn78nGXwmqBKdzGHzfesrDP17rGxJ5T++nhGSWW4oxEQy3mouJEAEHE1O2f AgAA X-CFilter-Loop: Reflected Cc: patches@linaro.org Subject: [U-Boot] [PATCH 3/3 V4] PMIC: MAX77686: Add FDT Support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de This patch adds fdt support to MAX77686. Signed-off-by: Rajeshwari Shinde Acked-by: Simon Glass --- Changes in V2: - Corrected indentation errors. Changes in V3: - Rebased on top of the latest implementation of PMIC Changes in V4: - Corrected PMIC register address drivers/power/pmic/pmic_max77686.c | 37 +++++++++++++++++++++++++++++++++-- 1 files changed, 34 insertions(+), 3 deletions(-) diff --git a/drivers/power/pmic/pmic_max77686.c b/drivers/power/pmic/pmic_max77686.c index fce0183..a1ee04e 100644 --- a/drivers/power/pmic/pmic_max77686.c +++ b/drivers/power/pmic/pmic_max77686.c @@ -22,10 +22,14 @@ */ #include +#include +#include #include #include #include +DECLARE_GLOBAL_DATA_PTR; + int pmic_init(unsigned char bus) { static const char name[] = "MAX77686_PMIC"; @@ -36,13 +40,40 @@ int pmic_init(unsigned char bus) return -ENOMEM; } - puts("Board PMIC init\n"); +#ifdef CONFIG_OF_CONTROL + const void *blob = gd->fdt_blob; + int node, parent; + + node = fdtdec_next_compatible(blob, 0, COMPAT_MAXIM_MAX77686_PMIC); + if (node < 0) { + debug("PMIC: No node for PMIC Chip in device tree\n"); + debug("node = %d\n", node); + return -1; + } + + parent = fdt_parent_offset(blob, node); + if (parent < 0) { + debug("%s: Cannot find node parent\n", __func__); + return -1; + } + + p->bus = i2c_get_bus_num_fdt(parent); + if (p->bus < 0) { + debug("%s: Cannot find I2C bus\n", __func__); + return -1; + } + p->hw.i2c.addr = fdtdec_get_int(blob, node, "reg", 9); +#else + p->bus = bus; + p->hw.i2c.addr = MAX77686_I2C_ADDR; +#endif + p->name = name; p->interface = PMIC_I2C; p->number_of_regs = PMIC_NUM_OF_REGS; - p->hw.i2c.addr = MAX77686_I2C_ADDR; p->hw.i2c.tx_num = 1; - p->bus = bus; + + puts("Board PMIC init\n"); return 0; }