From patchwork Wed Mar 9 06:01:47 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 594846 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 A4CC1140B0D for ; Wed, 9 Mar 2016 17:13:50 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=EyxatfKV; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id E3BB8A7728; Wed, 9 Mar 2016 07:13:44 +0100 (CET) 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 dgMMpbQ94Prl; Wed, 9 Mar 2016 07:13:44 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 81BA2A7706; Wed, 9 Mar 2016 07:13:44 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 9556FA7706 for ; Wed, 9 Mar 2016 07:13:42 +0100 (CET) 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 yP-O76IcFTv6 for ; Wed, 9 Mar 2016 07:13:42 +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 mail-pf0-f196.google.com (mail-pf0-f196.google.com [209.85.192.196]) by theia.denx.de (Postfix) with ESMTPS id 98E11A7718 for ; Wed, 9 Mar 2016 07:13:40 +0100 (CET) Received: by mail-pf0-f196.google.com with SMTP id q129so2734986pfb.3 for ; Tue, 08 Mar 2016 22:13:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=4OucnDPJPJVvgc8r6YixC6oOZqWKA1azzvjsQyiZNe4=; b=EyxatfKVYtnvRzYj3zFgp8fuMU2LVu/YQFDY6Uqb/2c80HiaFHvxjzJRvpX0fdnajp zM7WKV3pk/nWyrgKoiB7SRM1KF13Y7sHhjU2Rs8a4mXRiNJI3zGSZey2riq5jZWLmrIm VzVrFXU1S+HZvWCahLjSZJaQvatMXI+G23QFirYeqG5yxUahUfHJWYNUul/w2SjdEDR+ aJzPiXVHdkloUnmY4awwK4PkGb2qi9IX9VfpnenFFMrB/IZyAxx0MrGLaDt3ggrwZv8Q wZiXOPqJGHlo1UpiCh7LdT3bFwHi7Qe5s+VTLrBaF2n7us684xT3ZV1yFssJ5onfDU8M CzdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4OucnDPJPJVvgc8r6YixC6oOZqWKA1azzvjsQyiZNe4=; b=Dyv89N+QNvFrBK4q/S+3dyyVaVhK401DkuJ4Oj35pdMnB/1SKv6ja5C3SDGXT00Q9n 9DY0A5zopmNnsIeNa7lCIvhKY/o3o182ZDjqRWg+JLADdumXCz7fWqoRL2rSLQXojr+c 63zWQbzAVPWQrh/8hq4E8oPolo6G+fd3os+ckFmq5wLkLq07CV22Y24dU010NbO3qdPT 8Yams0bsi0m0IyPLuk6StaqGk4KZWW7NqCzViwc7KVDOdci+cuEcllXl+RQ3tw290f/h ulu0stenrgAqvvtmsJjciZ3hekWhZRe0AZzjSADuj7vMvIKX+GR1ysDMcsuvD9TclCdn 7ffw== X-Gm-Message-State: AD7BkJJw3MGHJhVeOUo0Tl173AlJ51pnuzBF2l9DWlt4bytEjlbEWHfNNck8EPrNWKIQjw== X-Received: by 10.98.93.211 with SMTP id n80mr48224539pfj.61.1457504019211; Tue, 08 Mar 2016 22:13:39 -0800 (PST) Received: from linux-7smt.suse (gate-zmy3.freescale.com. [192.88.167.1]) by smtp.gmail.com with ESMTPSA id ud10sm9181984pab.27.2016.03.08.22.13.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 08 Mar 2016 22:13:38 -0800 (PST) From: Peng Fan To: sbabic@denx.de Date: Wed, 9 Mar 2016 14:01:47 +0800 Message-Id: <1457503307-3266-4-git-send-email-van.freenix@gmail.com> X-Mailer: git-send-email 2.6.2 In-Reply-To: <1457503307-3266-1-git-send-email-van.freenix@gmail.com> References: <1457503307-3266-1-git-send-email-van.freenix@gmail.com> Cc: u-boot@lists.denx.de, sr@denx.de, Fabio Estevam Subject: [U-Boot] [PATCH 3/3] imx: mx6ul_evk: convert to use Driver model for power and i2c 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Convert to use DM_PMIC/DM_REGULATOR/DM_I2C for mx6ul evk. To mx6ul_14x14_evk, there is no pmic on board, so only enable DM_I2C. Since we have PINCTRL driver and DM_I2C enabled, we could discard the pinmux setting in board file, but we can not do this, because still some dependency in arch/arm/imx-common/i2c-mxv7.c. Later we may need to find out a way to refine this. To avoid SPL build warning, disable i2c-mxc driver for SPL part. Signed-off-by: Peng Fan Cc: Stefano Babic Cc: Fabio Estevam --- board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c | 38 +++++++++-------------- configs/mx6ul_14x14_evk_defconfig | 1 + configs/mx6ul_9x9_evk_defconfig | 8 +++++ include/configs/mx6ul_14x14_evk.h | 11 ++----- 4 files changed, 25 insertions(+), 33 deletions(-) diff --git a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c index 98d5675..62a3e68 100644 --- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c +++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c @@ -174,45 +174,35 @@ static struct i2c_pads_info i2c_pad_info1 = { }, }; -#ifdef CONFIG_POWER -#define I2C_PMIC 0 +#ifdef CONFIG_DM_PMIC int power_init_board(void) { if (is_mx6ul_9x9_evk()) { - struct pmic *pfuze; - int ret; - unsigned int reg, rev_id; + struct udevice *dev; + int ret, dev_id, rev_id; - ret = power_pfuze3000_init(I2C_PMIC); - if (ret) + ret = pmic_get("pfuze3000", &dev); + if (ret == -ENODEV) + return 0; + else if (ret != 0) return ret; - pfuze = pmic_get("PFUZE3000"); - ret = pmic_probe(pfuze); - if (ret) - return ret; - - pmic_reg_read(pfuze, PFUZE3000_DEVICEID, ®); - pmic_reg_read(pfuze, PFUZE3000_REVID, &rev_id); + dev_id = pmic_reg_read(dev, PFUZE3000_DEVICEID); + rev_id = pmic_reg_read(dev, PFUZE3000_REVID); printf("PMIC: PFUZE3000 DEV_ID=0x%x REV_ID=0x%x\n", - reg, rev_id); + dev_id, rev_id); /* disable Low Power Mode during standby mode */ - pmic_reg_read(pfuze, PFUZE3000_LDOGCTL, ®); - reg |= 0x1; - pmic_reg_write(pfuze, PFUZE3000_LDOGCTL, reg); + pmic_clrsetbits(dev, PFUZE3000_LDOGCTL, 0, 1); /* SW1B step ramp up time from 2us to 4us/25mV */ - reg = 0x40; - pmic_reg_write(pfuze, PFUZE3000_SW1BCONF, reg); + pmic_reg_write(dev, PFUZE3000_SW1BCONF, 0x40); /* SW1B mode to APS/PFM */ - reg = 0xc; - pmic_reg_write(pfuze, PFUZE3000_SW1BMODE, reg); + pmic_reg_write(dev, PFUZE3000_SW1BMODE, 0xc); /* SW1B standby voltage set to 0.975V */ - reg = 0xb; - pmic_reg_write(pfuze, PFUZE3000_SW1BSTBY, reg); + pmic_reg_write(dev, PFUZE3000_SW1BSTBY, 0xb); } return 0; diff --git a/configs/mx6ul_14x14_evk_defconfig b/configs/mx6ul_14x14_evk_defconfig index a756de7..b67e0cb 100644 --- a/configs/mx6ul_14x14_evk_defconfig +++ b/configs/mx6ul_14x14_evk_defconfig @@ -4,6 +4,7 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_GPIO=y CONFIG_CMD_PING=y CONFIG_DEFAULT_DEVICE_TREE="imx6ul-14x14-evk" +CONFIG_DM_I2C=y CONFIG_OF_CONTROL=y CONFIG_PINCTRL=y CONFIG_PINCTRL_FULL=y diff --git a/configs/mx6ul_9x9_evk_defconfig b/configs/mx6ul_9x9_evk_defconfig index fed0254..cebfbdd 100644 --- a/configs/mx6ul_9x9_evk_defconfig +++ b/configs/mx6ul_9x9_evk_defconfig @@ -3,7 +3,15 @@ CONFIG_ARM=y CONFIG_CMD_DHCP=y CONFIG_CMD_GPIO=y CONFIG_CMD_PING=y +CONFIG_CMD_PMIC=y +CONFIG_CMD_REGULATOR=y CONFIG_DEFAULT_DEVICE_TREE="imx6ul-9x9-evk" +CONFIG_DM_I2C=y +CONFIG_DM_PMIC=y +CONFIG_DM_PMIC_PFUZE100=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_PFUZE100=y +CONFIG_ERRNO_STR=y CONFIG_OF_CONTROL=y CONFIG_PINCTRL=y CONFIG_PINCTRL_FULL=y diff --git a/include/configs/mx6ul_14x14_evk.h b/include/configs/mx6ul_14x14_evk.h index c7e10f9..8a27b26 100644 --- a/include/configs/mx6ul_14x14_evk.h +++ b/include/configs/mx6ul_14x14_evk.h @@ -50,19 +50,12 @@ #endif /* I2C configs */ +#ifndef CONFIG_SPL #define CONFIG_CMD_I2C #ifdef CONFIG_CMD_I2C -#define CONFIG_SYS_I2C #define CONFIG_SYS_I2C_MXC -#define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */ -#define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */ #define CONFIG_SYS_I2C_SPEED 100000 - -/* PMIC only for 9X9 EVK */ -#define CONFIG_POWER -#define CONFIG_POWER_I2C -#define CONFIG_POWER_PFUZE3000 -#define CONFIG_POWER_PFUZE3000_I2C_ADDR 0x08 +#endif #endif #define CONFIG_SYS_MMC_IMG_LOAD_PART 1