From patchwork Wed Jul 15 22:49:10 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adrian Alonso X-Patchwork-Id: 496027 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 4436014029D for ; Thu, 16 Jul 2015 10:34:49 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 2481E4B788; Thu, 16 Jul 2015 02:34:21 +0200 (CEST) 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 Yc6K0TOM2DUV; Thu, 16 Jul 2015 02:34:21 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 3049D4B7A9; Thu, 16 Jul 2015 02:34:01 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id BA3674B61F for ; Thu, 16 Jul 2015 01:25:16 +0200 (CEST) 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 b-Hndw54vvmK for ; Thu, 16 Jul 2015 01:25:16 +0200 (CEST) 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 na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0110.outbound.protection.outlook.com [157.56.111.110]) by theia.denx.de (Postfix) with ESMTPS id 0EB574B616 for ; Thu, 16 Jul 2015 01:25:11 +0200 (CEST) Received: from BLUPR0301CA0002.namprd03.prod.outlook.com (10.162.113.140) by BY2PR0301MB1639.namprd03.prod.outlook.com (10.163.28.141) with Microsoft SMTP Server (TLS) id 15.1.213.14; Wed, 15 Jul 2015 23:05:13 +0000 Received: from BN1BFFO11FD024.protection.gbl (2a01:111:f400:7c10::1:117) by BLUPR0301CA0002.outlook.office365.com (2a01:111:e400:5259::12) with Microsoft SMTP Server (TLS) id 15.1.219.17 via Frontend Transport; Wed, 15 Jul 2015 23:05:08 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1BFFO11FD024.mail.protection.outlook.com (10.58.144.87) with Microsoft SMTP Server (TLS) id 15.1.213.8 via Frontend Transport; Wed, 15 Jul 2015 22:50:26 +0000 Received: from bluefly.am.freescale.net (bluefly.am.freescale.net [10.81.17.130]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t6FMoOQY030445; Wed, 15 Jul 2015 15:50:25 -0700 From: Adrian Alonso To: , Date: Wed, 15 Jul 2015 17:49:10 -0500 Message-ID: <1437000559-3208-2-git-send-email-aalonso@freescale.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1437000559-3208-1-git-send-email-aalonso@freescale.com> References: <1437000559-3208-1-git-send-email-aalonso@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD024; 1:l0ijDyuF4E5zDK6fyyYRa1dzLWdc0eDxX1xfSh0NeB2I+TCm46T53zNGmODi9nNZinGgV0TgjC1zplzg0QHkC6qAoB+eKUs5hazcQhUnDXWAUvT2j4JayKCTgpoYfMqReCZ9Nq7+gEyCjd6etepEvDCqityUK5DBJViTiNc3aVLSyPFuGW7IJRKY9laKDTGIyTAZyZP5+WR6AiaOp2wTDF2uTIMi7fLjRr5X7FT7YQTVO6HY85VHndiEQHqzNQjLEs+PwxbzYlziSuOJ7glcJID5uQxigy2FflqoDLCJ98rrjv4Ca20OhZaMZ/4ZpnWGK8whaYq/2MwIB8A1QPaxRjzBDRETL/DPGxhXCPqUrBQfkANIe8ofConlzTHxPJn4nqZDY/ZyjhVh6riOPhbk6OSSF+qdEIBOC3vhlgYLal10qtcrey2PHuEv+SXDAb8Y X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(339900001)(199003)(189002)(107886002)(2950100001)(5003940100001)(189998001)(47776003)(105606002)(77156002)(575784001)(87936001)(50986999)(106466001)(62966003)(5001960100002)(86362001)(36756003)(85426001)(46102003)(5001770100001)(77096005)(92566002)(5001920100001)(50226001)(229853001)(50466002)(48376002)(33646002)(76176999)(104016003)(19580405001)(19580395003)(6806004)(4001430100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR0301MB1639; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:sfv; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB1639; 2:f3CelnNTvboIdGzUr279LJ9wtaUJf6dwNHVWC9GglmwR37q/0cW7/DRwIqS6YtXU; 3:vfYw9tBspG/C50vIJldC4PYGDib0lAck5ZhZu43PGR9TAn3q9KIx9hoU2jCaBeODM6I1blhZ0FI6lf4jEASXx7yAn2Z6hcmoeaFLKfZcoBalqjte3SriKtceSuyslbxtpsCQDqPEIh1DM2+mWOuIFwsiBDIauVyAnHLhtXu06O3/Ir9ZPEyWG31KQXRo24r0++9DVPENFmv+5zgY/XAa8GTuKJPU0Ad55430fv0lJmo=; 25:k/D9ChoncKKI5h27wfUI4V9HNwaNqGrvu6smil/AN6A0HXEmbKND79rfA5FisXZtj9C4DYEKeS/m4ju24kZjpByWBP2eV67HA+NpDJ54k4xZ1EPah/74bR9Sxku/Dn2LvZYm38dryNOu51fOmsLNLgP6meuBUs8eth/fJfjHc6pWESW7DxwMhHLn9wwP6MwOk7/RL8c1nRNYCWXVvFHiplYUNqnsDEDtc1DIvhTiPRbZ2nMZP+IX6IurvzKmrw5Qe3QFWuHqcMllQj8K8Nw1eA==; 20:cYrZsQ4Fcu5609zYFWmmfzLNsmssZEfrl7CRfqVfDHd/RFRtMKrrkWuj0wlNcVgZMUKNFlYMKH5J3VD8GehOLr7yUPFqALyDn9b9Ogc01WEiD6IPtcEemYHoVxlM88LICJpU+hsvh8n/+o9/iJofWnRv1M1djzFLEoJduDk3ZELZw1SJxYRfR4dLb1+DNMXdTK7biOwKNBlM8ENu4jhhlNH/OCN8znDzY9zPgTwLLGwjGL5S0WQNfT6Qh6xIzzVhLo/pDYIsGf1VjhgiN6nN4qf6JpypOTZAw7hseBo8XHM37qlIK6EdiRx3EfzsQZnFj8Ay5+xKLvWxisie9BJ7XAnfRpcwRo/DNFZd+gN1U8s= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB1639; BY2PR0301MB1639: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:BY2PR0301MB1639; BCL:0; PCL:0; RULEID:; SRVR:BY2PR0301MB1639; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB1639; 4:rR1REmayZPbPt6W6jlOJo67W/2Z1fDJXTQz7Pi+nw8MqBlrkjr9ksP+yGUEA8+6+EzA0JaCk1Z6ACOBwlkt7Fx0eTNwMKlhVZK2P8OxFyIi8GHqYi4Oar+PwZX5Y9VOyCuLqnt0HYiJ8m6WR3WhT1FrWYjkRizZ7c4k/wQvjgd+b7gIiLxf3jyh1c6K+ckSvl7aN0NJn1z4UFowfPku/qDkKzSncqWoJnvaR56sdn3W5vImrDaocCI1R62f6rJguSAQPU7ywNKEOzzpv7Jpw7PM0XOoDbAW+GwBi9YQHoXo= X-Forefront-PRVS: 0638FD5066 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR0301MB1639; 23:UEinknsXhmWqnbX3DdxsSr5o7X+7G63sY/O6fCZ?= =?us-ascii?Q?fkV2MthkuYc6bNn66g8R3ta1AN2V1qO0qagyxBfZk5ryP49wdYRIuGFaxanw?= =?us-ascii?Q?uWMk/cxd33Ap2ZdRvm/rGUbO0zzVIOgrVaJKShW67ILpMj8f3dxnPw0N1mVn?= =?us-ascii?Q?F+wyN9viQ63xHSTTXW4Agy/8Z72ahLHiem2KsZE9ZmfO2HSYFDForE0icwMy?= =?us-ascii?Q?47sB6ubO4uar/xNjJkzV0zNki/m17w7MibCjN/GaOY/Jw83WSqrCnqPffUpY?= =?us-ascii?Q?e01KQoMK53KwGqzK/6bQ+Bzal6HB4u1t45slTJSuZWKTLl19LHU7Gll9aM22?= =?us-ascii?Q?uLs6YY3bFn9tYYZ+rRjZdtgtWxbgGeUTCP4fll3jOh9wd0wsq3dlWSDb3oLK?= =?us-ascii?Q?iQZ1N4IKPiZVWlwfNUFeFAOsxnSzMPOMbEuricvrFnWzDwaHoqn3AFSLuXkj?= =?us-ascii?Q?t8NrpxdZnklfO1hWp4xvlzSngWXwYBSQiMxFyyT9aR6eIML8ET/aPpqRq7Tt?= =?us-ascii?Q?kdKeqYqvqx/LEW4vQZ9Ji8jK7jGG2e0JTvp1MjUfAOcKe6NvB8uhIwOmwiE6?= =?us-ascii?Q?PeAohtmtLGJn2JopFLj+jZbnT+HeuHOGEwFaPprKBHYJUv9tNTtXKzlLQn1P?= =?us-ascii?Q?sg8HIJHz54lDtd1T5CNpixD2ucHIC5x2SaMAEsa75meVtfWG7rQCPECgakuH?= =?us-ascii?Q?DjjZFoYl8j7NPjJPL3HKM+YzhfUIQwkX65k5LJkZcMuwxXpjbFWextvEj3+u?= =?us-ascii?Q?MhKW1/k1pwrZCfdi/lUSCmtK1fILcGzYcCK7xb1Vv5arEtjhSL5Uj4WbwNX5?= =?us-ascii?Q?MgodthjGVcV5ZL/nkhbyw2InHl49uy5jyf3PG65InkgFkXGkDlQcNf1xtvq7?= =?us-ascii?Q?yOpCVyy5fCUrMROOH/CLvSahZ6Y4pwn+t/+q52VkwMFn+1Th1LFx2AbrDLIm?= =?us-ascii?Q?pHgQt8hb63gEG/iWXymblrovfJBNRg0N1ohdPc7M7JRWzuMkH+TgxBHAvxrD?= =?us-ascii?Q?2YUC3sUGgA+qQ50eesV0ANs/k?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB1639; 5:I+OQuSJb8YLRdLk+Vy7a0bSeSgEZj/Ru7nwhaf4aA9df7nGBFTRn3eRiruwIYtA5RF0t99oUn795gn9XG/3vMpxSn6wNkiq2xgQ2ZPvkCSUNi2lVYabNsBQe3/lKXGn6+2bMrVXV9g94oPoN/UCzfA==; 24:zkMRMwn4p1arGuT06tEEyY3JCxV+BFu7q4Mr+Ty+uBocjp6N4gItTR7fQ/qHo3b2TFySJzNLBrw48RuS5AFnQts6rjni+wxW3LK2THWDeN0=; 20:mra9j46LE//1YQoDNz5OJzeW9qoY1+bcG1rXLmIIGWUcDlb88Akajsku/F66o7anxJ20KJA/Yr6OFMwxWjqaWg== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2015 22:50:26.7146 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0301MB1639 X-Mailman-Approved-At: Thu, 16 Jul 2015 02:33:39 +0200 Cc: Fabio.Estevam@freescale.com, otavio@ossystems.com.br Subject: [U-Boot] [PATCH 02/11] imx: power: add pmic pfuze300 support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" * Add pmic pfuze300 support for imx7 and iMX6 DL/SL/SX SoC's * Implement power_pfuze300_init to be used in power_init_board callback function. Signed-off-by: Adrian Alonso Signed-off-by: Peng Fan --- drivers/power/pmic/Makefile | 1 + drivers/power/pmic/pmic_pfuze300.c | 32 ++++++++++++++++ include/power/pfuze300_pmic.h | 78 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 drivers/power/pmic/pmic_pfuze300.c create mode 100644 include/power/pfuze300_pmic.h diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile index ae86f04..43040ff 100644 --- a/drivers/power/pmic/Makefile +++ b/drivers/power/pmic/Makefile @@ -14,6 +14,7 @@ obj-$(CONFIG_POWER_MAX8997) += pmic_max8997.o obj-$(CONFIG_POWER_MUIC_MAX8997) += muic_max8997.o obj-$(CONFIG_POWER_MAX77686) += pmic_max77686.o obj-$(CONFIG_POWER_PFUZE100) += pmic_pfuze100.o +obj-$(CONFIG_POWER_PFUZE300) += pmic_pfuze300.o obj-$(CONFIG_POWER_TPS65090_I2C) += pmic_tps65090.o obj-$(CONFIG_POWER_TPS65090_EC) += pmic_tps65090_ec.o obj-$(CONFIG_POWER_TPS65217) += pmic_tps65217.o diff --git a/drivers/power/pmic/pmic_pfuze300.c b/drivers/power/pmic/pmic_pfuze300.c new file mode 100644 index 0000000..4304ddd --- /dev/null +++ b/drivers/power/pmic/pmic_pfuze300.c @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2015 Freescale Semiconductor, Inc. + * Peng Fan + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include + +int power_pfuze300_init(unsigned char bus) +{ + static const char name[] = "PFUZE300"; + struct pmic *p = pmic_alloc(); + + if (!p) { + printf("%s: POWER allocation error!\n", __func__); + return -ENOMEM; + } + + p->name = name; + p->interface = PMIC_I2C; + p->number_of_regs = PMIC_NUM_OF_REGS; + p->hw.i2c.addr = CONFIG_POWER_PFUZE300_I2C_ADDR; + p->hw.i2c.tx_num = 1; + p->bus = bus; + + return 0; +} diff --git a/include/power/pfuze300_pmic.h b/include/power/pfuze300_pmic.h new file mode 100644 index 0000000..c7ec5ce --- /dev/null +++ b/include/power/pfuze300_pmic.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2015 Freescale Semiconductor, Inc + * Peng Fan + * + * SPDX-License-Identifier: GPL-2.0+ + */ +#ifndef __PFUZE300_PMIC_H_ +#define __PFUZE300_PMIC_H_ + +/* PFUZE300 registers */ +enum { + PFUZE300_DEVICEID = 0x00, + + PFUZE300_REVID = 0x03, + PFUZE300_FABID = 0x04, + PFUZE300_INTSTAT0 = 0x05, + PFUZE300_INTMASK0 = 0x06, + PFUZE300_INTSENSE0 = 0x07, + PFUZE300_INTSTAT1 = 0x08, + PFUZE300_INTMASK1 = 0x09, + PFUZE300_INTSENSE1 = 0x0A, + + PFUZE300_INTSTAT3 = 0x0E, + PFUZE300_INTMASK3 = 0x0F, + PFUZE300_INTSENSE3 = 0x10, + PFUZE300_INTSTAT4 = 0x11, + PFUZE300_INTMASK4 = 0x12, + PFUZE300_INTSENSE4 = 0x13, + + PFUZE300_COINCTL = 0x1A, + PFUZE300_PWRCTL = 0x1B, + PFUZE300_MEMA = 0x1C, + PFUZE300_MEMB = 0x1D, + PFUZE300_MEMC = 0x1E, + PFUZE300_MEMD = 0x1F, + + PFUZE300_SW1AVOLT = 0x20, + PFUZE300_SW1ASTBY = 0x21, + PFUZE300_SW1AOFF = 0x22, + PFUZE300_SW1AMODE = 0x23, + PFUZE300_SW1ACONF = 0x24, + + PFUZE300_SW1BVOLT = 0x2E, + PFUZE300_SW1BSTBY = 0x2F, + PFUZE300_SW1BOFF = 0x30, + PFUZE300_SW1BMODE = 0x31, + PFUZE300_SW1BCONF = 0x32, + + PFUZE300_SW2VOLT = 0x35, + PFUZE300_SW2STBY = 0x36, + PFUZE300_SW2OFF = 0x37, + PFUZE300_SW2MODE = 0x38, + PFUZE300_SW2CONF = 0x39, + + PFUZE300_SW3VOLT = 0x3C, + PFUZE300_SW3STBY = 0x3D, + PFUZE300_SW3OFF = 0x3E, + PFUZE300_SW3MODE = 0x3F, + PFUZE300_SW3CONF = 0x40, + + PFUZE300_SWBSTCTL = 0x66, + + PFUZE300_LDOGCTL = 0x69, + PFUZE300_VREFDDRCTL = 0x6A, + PFUZE300_VSNVSCTL = 0x6B, + PFUZE300_VLDO1CTL = 0x6C, + PFUZE300_VLDO2CTL = 0x6D, + PFUZE300_VCC_SDCTL = 0x6E, + PFUZE300_V33CTL = 0x6F, + PFUZE300_VLDO3CTL = 0x70, + PFUZE300_VLD4CTL = 0x71, + + PMIC_NUM_OF_REGS = 0x7F, +}; + +int power_pfuze300_init(unsigned char bus); + +#endif