From patchwork Wed Feb 13 06:40:02 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajeshwari Shinde X-Patchwork-Id: 14768 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 2A22E23E33 for ; Wed, 13 Feb 2013 06:33:38 +0000 (UTC) Received: from mail-ve0-f175.google.com (mail-ve0-f175.google.com [209.85.128.175]) by fiordland.canonical.com (Postfix) with ESMTP id BCCD2A191D0 for ; Wed, 13 Feb 2013 06:33:37 +0000 (UTC) Received: by mail-ve0-f175.google.com with SMTP id cy12so789222veb.20 for ; Tue, 12 Feb 2013 22:33:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:x-forwarded-to:x-forwarded-for:delivered-to:x-received :received-spf:x-auditid:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references:x-brightmail-tracker:x-brightmail-tracker :dlp-filter:x-mtr:x-cfilter-loop:x-gm-message-state; bh=vJ/uImP9qSY6Z7AUuC0o56FEA98Lwb0lk2xbCAVQag8=; b=VXQXIg4LuXKEDwv8kWW6Nj4JGUx5Sr1TsD60eDqA3vGmlahE9/z8DtZEArAn/FiCQE LHZbOFQ7mOWRO1P93WRJaIgQGd9TZrDlthHE2ni+5WDUG7S9HyuSxVSE6bbGiPKO9T1z FoKD2szZssJxjuc/Cb3yHJSIzwk1Cb0cVu4dcJiO9UWMhyyyuXMKhIvyBDiSdr/avATv Os6U3bBOWKaQfGEz+vVixFz+N8JPyzf/oCuW2XuLOHa5iZ5bpSwGV6oePMkuAAxjJKzl Crjwv1exrl4hIvFu+/vxi2YoIN1zom/QBScGSKKyFCLRm3uedUq21FH4CIKhfPowk2t2 KWoA== X-Received: by 10.52.69.74 with SMTP id c10mr23744361vdu.3.1360737217234; Tue, 12 Feb 2013 22:33:37 -0800 (PST) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.221.4.5 with SMTP id oa5csp177977vcb; Tue, 12 Feb 2013 22:33:36 -0800 (PST) X-Received: by 10.66.82.226 with SMTP id l2mr59908159pay.64.1360737215857; Tue, 12 Feb 2013 22:33:35 -0800 (PST) Received: from mailout3.samsung.com (mailout3.samsung.com. [203.254.224.33]) by mx.google.com with ESMTP id b2si2053840pav.288.2013.02.12.22.33.35; Tue, 12 Feb 2013 22:33:35 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of rajeshwari.s@samsung.com designates 203.254.224.33 as permitted sender) client-ip=203.254.224.33; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of rajeshwari.s@samsung.com designates 203.254.224.33 as permitted sender) smtp.mail=rajeshwari.s@samsung.com Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MI500D9QBJ4URL0@mailout3.samsung.com>; Wed, 13 Feb 2013 15:33:22 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.126]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 8B.6B.03918.2B33B115; Wed, 13 Feb 2013 15:33:22 +0900 (KST) X-AuditID: cbfee61a-b7f7d6d000000f4e-7d-511b33b27fd9 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 0B.6B.03918.2B33B115; Wed, 13 Feb 2013 15:33:22 +0900 (KST) Received: from rajeshwari-linux.sisodomain.com ([107.108.215.115]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MI500AP7BHNX840@mmp2.samsung.com>; Wed, 13 Feb 2013 15:33:22 +0900 (KST) From: Rajeshwari Shinde To: u-boot@lists.denx.de Cc: patches@linaro.org, sjg@chromium.org, mk7.kang@samsung.com, chander.kashyap@linaro.org Subject: [PATCH 2/2 V3] SMDK5250: Add PMIC voltage settings Date: Wed, 13 Feb 2013 12:10:02 +0530 Message-id: <1360737602-19085-3-git-send-email-rajeshwari.s@samsung.com> X-Mailer: git-send-email 1.7.4.4 In-reply-to: <1360737602-19085-1-git-send-email-rajeshwari.s@samsung.com> References: <1360737602-19085-1-git-send-email-rajeshwari.s@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrKLMWRmVeSWpSXmKPExsWyRsSkTneTsXSgweVtYhYP199ksZhy+AuL A5PHnWt72AIYo7hsUlJzMstSi/TtErgyfre+ZSw4pVFx/Mwf5gbGrwpdjJwcEgImEmuu97NB 2GISF+6tB7OFBJYySly8Fd7FyAFW8/SkVxcjF1B4OqPE9QXP2CCciUwSK7ccYgFpYBMwkth6 chojiC0iICHxq/8qmM0sECPxev8PNpBBwgLWEmd+aYOYLAKqEq8OKoFU8Ap4SCyeeJYF4gQF iWNTv7KC2JwCnhJrNvSyQ5zjITH11VVWkLUSAvfZJFZO+gnWwCIgIPFtMsgJIHfKSmw6wAwx R1Li4IobLBMYhRcwMqxiFE0tSC4oTkrPNdQrTswtLs1L10vOz93ECAzE0/+eSe1gXNlgcYhR gINRiYfXIUQqUIg1say4MvcQowQHs5II7wQO6UAh3pTEyqrUovz4otKc1OJDjMlAyycyS4km 5wOjJK8k3tDYxNzU2NTSyMjM1JQ0YSVxXsZTTwKEBNITS1KzU1MLUotgtjBxcEo1MNbJLK66 4KW3mK1qe5URb1Nm5xqdYNHYabvtw5ZKvu+TkH73yGr+hQ0LwjUfev+craMvvffnNZa+Wa8m TSx9urTka1DXJaVjN64KHC/pe7DVb7fUKrMjB3QlVMv3uR6XWBQ5aQGLYtEbqWOy0424FR50 OT3+b2K86Szfzg3zV5V8rHinzPzV754SS3FGoqEWc1FxIgC4Hy6giAIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKIsWRmVeSWpSXmKPExsVy+t9jQd1NxtKBBk9vc1g8XH+TxWLK4S8s Dkwed67tYQtgjGpgtMlITUxJLVJIzUvOT8nMS7dV8g6Od443NTMw1DW0tDBXUshLzE21VXLx CdB1y8wBmq2kUJaYUwoUCkgsLlbSt8M0ITTETdcCpjFC1zckCK7HyAANJKxhzPjd+pax4JRG xfEzf5gbGL8qdDFycEgImEg8PenVxcgJZIpJXLi3nq2LkYtDSGA6o8T1Bc+gnIlMEiu3HGIB qWITMJLYenIaI4gtIiAh8av/KpjNLBAj8Xr/DzaQocIC1hJnfmmDmCwCqhKvDiqBVPAKeEgs nniWBWKXgsSxqV9ZQWxOAU+JNRt62UFsIaCaqa+usk5g5F3AyLCKUTS1ILmgOCk911CvODG3 uDQvXS85P3cTIzjQn0ntYFzZYHGIUYCDUYmH1yFEKlCINbGsuDL3EKMEB7OSCO8EDulAId6U xMqq1KL8+KLSnNTiQ4zJQEdNZJYSTc4HRmFeSbyhsYm5qbGppYmFiZklacJK4ryMp54ECAmk J5akZqemFqQWwWxh4uCUamDU+aJ5zcaaQXq19D/Z14cMK9ObKjvfPNY9Nr3LfW/Hfsu+IiYR 8fpm1/SPPVLJuwSqXriKRx7Kn9+w4G1OdNG/WykBL62Pn5ncpmXwuDLp8b2tqz+1WOZFx9Ub u9VcKdhgvPSH1sWDJ1bFnfn64dnDzTnalT9ZDZ+KbwksfRWs6ifweRtrYp4SS3FGoqEWc1Fx IgCtHOjXuAIAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Gm-Message-State: ALoCoQnXYTcT2dVmKN5vk/mQKBuZ9JnVPR67E5HCZtx6Pmo+HWUgTkF/BkkXKF0BWELBB2EHjWQn This patch adds required pmic voltage settings for SMDK5250. Acked-by: Simon Glass Signed-off-by: Rajeshwari Shinde --- Changes in V2: - Corrected the multi line comment style Changes in V3: - None board/samsung/smdk5250/smdk5250.c | 113 ++++++++++++++++++++++++++++++++++++- include/power/max77686_pmic.h | 32 ++++++++++ 2 files changed, 143 insertions(+), 2 deletions(-) diff --git a/board/samsung/smdk5250/smdk5250.c b/board/samsung/smdk5250/smdk5250.c index 7a5f132..ffc5ee5 100644 --- a/board/samsung/smdk5250/smdk5250.c +++ b/board/samsung/smdk5250/smdk5250.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -35,6 +36,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -80,12 +82,119 @@ int dram_init(void) } #if defined(CONFIG_POWER) +static int pmic_reg_update(struct pmic *p, int reg, uint regval) +{ + u32 val; + int ret = 0; + + ret = pmic_reg_read(p, reg, &val); + if (ret) { + debug("%s: PMIC %d register read failed\n", __func__, reg); + return -1; + } + val |= regval; + ret = pmic_reg_write(p, reg, val); + if (ret) { + debug("%s: PMIC %d register write failed\n", __func__, reg); + return -1; + } + return 0; +} + int power_init_board(void) { + struct pmic *p; + + set_ps_hold_ctrl(); + + i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); + if (pmic_init(I2C_PMIC)) return -1; - else - return 0; + + p = pmic_get("MAX77686_PMIC"); + if (!p) + return -ENODEV; + + if (pmic_probe(p)) + return -1; + + if (pmic_reg_update(p, MAX77686_REG_PMIC_32KHZ, MAX77686_32KHCP_EN)) + return -1; + + if (pmic_reg_update(p, MAX77686_REG_PMIC_BBAT, + MAX77686_BBCHOSTEN | MAX77686_BBCVS_3_5V)) + return -1; + + /* VDD_MIF */ + if (pmic_reg_write(p, MAX77686_REG_PMIC_BUCK1OUT, + MAX77686_BUCK1OUT_1V)) { + debug("%s: PMIC %d register write failed\n", __func__, + MAX77686_REG_PMIC_BUCK1OUT); + return -1; + } + + if (pmic_reg_update(p, MAX77686_REG_PMIC_BUCK1CRTL, + MAX77686_BUCK1CTRL_EN)) + return -1; + + /* VDD_ARM */ + if (pmic_reg_write(p, MAX77686_REG_PMIC_BUCK2DVS1, + MAX77686_BUCK2DVS1_1_3V)) { + debug("%s: PMIC %d register write failed\n", __func__, + MAX77686_REG_PMIC_BUCK2DVS1); + return -1; + } + + if (pmic_reg_update(p, MAX77686_REG_PMIC_BUCK2CTRL1, + MAX77686_BUCK2CTRL_ON)) + return -1; + + /* VDD_INT */ + if (pmic_reg_write(p, MAX77686_REG_PMIC_BUCK3DVS1, + MAX77686_BUCK3DVS1_1_0125V)) { + debug("%s: PMIC %d register write failed\n", __func__, + MAX77686_REG_PMIC_BUCK3DVS1); + return -1; + } + + if (pmic_reg_update(p, MAX77686_REG_PMIC_BUCK3CTRL, + MAX77686_BUCK3CTRL_ON)) + return -1; + + /* VDD_G3D */ + if (pmic_reg_write(p, MAX77686_REG_PMIC_BUCK4DVS1, + MAX77686_BUCK4DVS1_1_2V)) { + debug("%s: PMIC %d register write failed\n", __func__, + MAX77686_REG_PMIC_BUCK4DVS1); + return -1; + } + + if (pmic_reg_update(p, MAX77686_REG_PMIC_BUCK4CTRL1, + MAX77686_BUCK3CTRL_ON)) + return -1; + + /* VDD_LDO2 */ + if (pmic_reg_update(p, MAX77686_REG_PMIC_LDO2CTRL1, + MAX77686_LD02CTRL1_1_5V | EN_LDO)) + return -1; + + /* VDD_LDO3 */ + if (pmic_reg_update(p, MAX77686_REG_PMIC_LDO3CTRL1, + MAX77686_LD03CTRL1_1_8V | EN_LDO)) + return -1; + + /* VDD_LDO5 */ + if (pmic_reg_update(p, MAX77686_REG_PMIC_LDO5CTRL1, + MAX77686_LD05CTRL1_1_8V | EN_LDO)) + return -1; + + /* VDD_LDO10 */ + if (pmic_reg_update(p, MAX77686_REG_PMIC_LDO10CTRL1, + MAX77686_LD10CTRL1_1_8V | EN_LDO)) + return -1; + + return 0; } #endif diff --git a/include/power/max77686_pmic.h b/include/power/max77686_pmic.h index d949ace..4b1cd3c 100644 --- a/include/power/max77686_pmic.h +++ b/include/power/max77686_pmic.h @@ -155,4 +155,36 @@ enum { EN_LDO = (0x3 << 6), }; +/* Buck1 1 volt value */ +#define MAX77686_BUCK1OUT_1V 0x5 +#define MAX77686_BUCK1CTRL_EN (3 << 0) +/* Buck2 1.3 volt value */ +#define MAX77686_BUCK2DVS1_1_3V 0x38 +#define MAX77686_BUCK2CTRL_ON (1 << 4) +/* Buck3 1.0125 volt value */ +#define MAX77686_BUCK3DVS1_1_0125V 0x21 +#define MAX77686_BUCK3CTRL_ON (1 << 4) +/* Buck4 1.2 volt value */ +#define MAX77686_BUCK4DVS1_1_2V 0x30 +#define MAX77686_BUCK4CTRL_ON (1 << 4) +/* LDO2 1.5 volt value */ +#define MAX77686_LD02CTRL1_1_5V 0x1c +/* LDO3 1.8 volt value */ +#define MAX77686_LD03CTRL1_1_8V 0x14 +/* LDO5 1.8 volt value */ +#define MAX77686_LD05CTRL1_1_8V 0x14 +/* LDO10 1.8 volt value */ +#define MAX77686_LD10CTRL1_1_8V 0x14 +/* + * MAX77686_REG_PMIC_32KHZ set to 32KH CP + * output is activated + */ +#define MAX77686_32KHCP_EN (1 << 1) +/* + * MAX77686_REG_PMIC_BBAT set to + * Back up batery charger on and + * limit voltage setting to 3.5v + */ +#define MAX77686_BBCHOSTEN (1 << 0) +#define MAX77686_BBCVS_3_5V (3 << 3) #endif /* __MAX77686_PMIC_H_ */