From patchwork Wed Jan 9 07:03:40 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajeshwari Birje X-Patchwork-Id: 210636 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 27B992C00AC for ; Wed, 9 Jan 2013 17:57:23 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 887A64A166; Wed, 9 Jan 2013 07:57:06 +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 Xhlsqi9m9rKO; Wed, 9 Jan 2013 07:57:06 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 835BC4A13B; Wed, 9 Jan 2013 07:56:52 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 2049D4A115 for ; Wed, 9 Jan 2013 07:56:47 +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 GV+s7lQu8dsb for ; Wed, 9 Jan 2013 07:56:45 +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 mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) by theia.denx.de (Postfix) with ESMTP id 62C674A090 for ; Wed, 9 Jan 2013 07:56:42 +0100 (CET) Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MGC00A4EJA8NJN0@mailout1.samsung.com> for u-boot@lists.denx.de; Wed, 09 Jan 2013 15:56:40 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [172.20.52.122]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 3C.96.12699.8A41DE05; Wed, 09 Jan 2013 15:56:40 +0900 (KST) X-AuditID: cbfee61b-b7f616d00000319b-5a-50ed14a85053 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 5B.96.12699.7A41DE05; Wed, 09 Jan 2013 15:56:40 +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 <0MGC00L0DJA2MOB0@mmp1.samsung.com> for u-boot@lists.denx.de; Wed, 09 Jan 2013 15:56:39 +0900 (KST) From: Rajeshwari Shinde To: u-boot@lists.denx.de Date: Wed, 09 Jan 2013 12:33:40 +0530 Message-id: <1357715020-16297-4-git-send-email-rajeshwari.s@samsung.com> X-Mailer: git-send-email 1.7.4.4 In-reply-to: <1357715020-16297-1-git-send-email-rajeshwari.s@samsung.com> References: <1357715020-16297-1-git-send-email-rajeshwari.s@samsung.com> DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrFLMWRmVeSWpSXmKPExsWyRsSkSneFyNsAg9l7RSze7u1kd2D0OHtn B2MAYxSXTUpqTmZZapG+XQJXxoLzvawFD/krHq2YzdrAeJCni5GDQ0LARKJlpUAXIyeQKSZx 4d56ti5GLg4hgaWMEq2npjDB1LQ9T4OIL2KUeD/9LztIg5DAKiaJTdejQWw2ASOJrSenMYLY IgISEr/6r4LZzAIlEt++dbOC2MIC5hIrZy5nAbFZBFQlTs67C1bDK+AhsezGGVaIIxQkjk39 CmZzCnhK7L31EWqXh8TmuafYIXoFJL5NPsQCcZusxKYDzCC3SQhcZ5P4u+sIC8QcSYmDK26w TGAUXsDIsIpRNLUguaA4KT3XSK84Mbe4NC9dLzk/dxMjMABP/3smvYNxVYPFIUYBDkYlHt6H 094ECLEmlhVX5h5ilOBgVhLhvesNFOJNSaysSi3Kjy8qzUktPsToA3TJRGYp0eR8YHTklcQb GpuYmxqbWhoZmZma4hBWEudlPPUkQEggPbEkNTs1tSC1CGYcEwenVAOjQOBSViH2r7ezz88L WnZOpczxQOHf4xd2du3aEVLzWq0u2CBhPpvA4YY1P/eHn7HfEn7D4MuydpE5LhwLLQS5Vmzz Xjf5TbG95e3m4yZf9RuvaBsu5rvCwVx4TubUdJUUn7RLj2IPVCpqbz/CNk/MVmj2lXO/5yyr 1N1Ssum8Z8fFhbPEDT8dUWIpzkg01GIuKk4EALwZnSVtAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupikeLIzCtJLcpLzFFi42I5/e+xgO4KkbcBBi1b2Sze7u1kd2D0OHtn B2MAY1QDo01GamJKapFCal5yfkpmXrqtkndwvHO8qZmBoa6hpYW5kkJeYm6qrZKLT4CuW2YO 0FglhbLEnFKgUEBicbGSvh2mCaEhbroWMI0Rur4hQXA9RgZoIGENY8aC872sBQ/5Kx6tmM3a wHiQp4uRg0NCwESi7XlaFyMnkCkmceHeerYuRi4OIYFFjBLvp/9lB0kICaxikth0PRrEZhMw kth6chojiC0iICHxq/8qmM0sUCLx7Vs3K4gtLGAusXLmchYQm0VAVeLkvLtgNbwCHhLLbpxh hVimIHFs6lcwm1PAU2LvrY9QuzwkNs89xT6BkXcBI8MqRtHUguSC4qT0XCO94sTc4tK8dL3k /NxNjOAAfya9g3FVg8UhRgEORiUe3ofT3gQIsSaWFVfmHmKU4GBWEuG96w0U4k1JrKxKLcqP LyrNSS0+xOgDdNVEZinR5Hxg9OWVxBsam5ibGptamliYmFniEFYS52U89SRASCA9sSQ1OzW1 ILUIZhwTB6dUA2ORu9SSyzyCd/ZOe3nmw53LPy9pTK3d+/vZhdl7mBh8Qxvf7G078XDu2sM6 OfG1T9LOtNarrzP/E31egnPfHuVJZusETkqy1IS8uvbdkEdhntg69yMen9SfdoYZ8c32a9C6 ms33/9BSt1mRvBdPTmh1rzvtobfLxNr67hvF7W+X9n0onCD9oeqXEktxRqKhFnNRcSIA+ABw UJ0CAAA= X-CFilter-Loop: Reflected Cc: patches@linaro.org Subject: [U-Boot] [PATCH 3/3 V5] 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 --- 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 Changes in V5: - None. 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..7fcb4c0 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; }