From patchwork Thu Jun 28 03:23:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ye Li X-Patchwork-Id: 935893 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="H+naxUtr"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41GQBQ4nvSz9ry1 for ; Thu, 28 Jun 2018 13:24:46 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 33113C21DB5; Thu, 28 Jun 2018 03:24:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAD_ENC_HEADER, SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 4DD75C21C6A; Thu, 28 Jun 2018 03:24:01 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 30705C21DD9; Thu, 28 Jun 2018 03:23:56 +0000 (UTC) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0042.outbound.protection.outlook.com [104.47.2.42]) by lists.denx.de (Postfix) with ESMTPS id 89C07C21DFA for ; Thu, 28 Jun 2018 03:23:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H0TdQIALA7KXy4mGB3eJv7VJFUFHsmsfbjuZ5B1yJhU=; b=H+naxUtrGM3HeSVWeRJAPwUQrGdfRrNTca2OK/Cj6wSPK34V1aSVhMXpqCX8jNJh9Rua3s77Rttj4XM5AQq1u0rOmMVwtsY+IW7P6PeM+jbyoIximlGeJ6rhPAJcyHpT7OjjY3UN/U1ptGs9UUgJTKklh01Dykg040lCC+FVT7w= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ye.li@nxp.com; Received: from ubuntu.localdomain (119.31.174.66) by DB7PR04MB5306.eurprd04.prod.outlook.com (2603:10a6:10:22::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.906.20; Thu, 28 Jun 2018 03:23:49 +0000 From: Ye Li To: sbabic@denx.de, peng.fan@nxp.com, ashish.kumar@nxp.com, fabio.estevam@nxp.com Date: Wed, 27 Jun 2018 20:23:17 -0700 Message-Id: <1530156197-7770-3-git-send-email-ye.li@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1530156197-7770-1-git-send-email-ye.li@nxp.com> References: <1530156197-7770-1-git-send-email-ye.li@nxp.com> MIME-Version: 1.0 X-Originating-IP: [119.31.174.66] X-ClientProxiedBy: KL1PR0302CA0015.apcprd03.prod.outlook.com (2603:1096:802::25) To DB7PR04MB5306.eurprd04.prod.outlook.com (2603:10a6:10:22::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e2938b9b-01ed-4c83-e35e-08d5dca691ec X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600026)(711020)(48565401081)(2017052603328)(7153060)(7193020); SRVR:DB7PR04MB5306; X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB5306; 3:twLWQ01IHEEfThsmBjwIAUYq6sNHrDLsREfJh5esg+xOUaAsb8oAvIhGBMOKJJcqRDCbZPFGLSwg+F5qq1OMIYiWTrcA9CL7KSNUuBlPuYPaE2KrMAQNq3KvAWKZsuqGZTDiV1x/Zw0qSwkz/tZ5C0hWfMFrvsU0TTI+7g/jjHbfaiOLfM1/eIXzlo2vEYYloyxVT72NonFAyG91UGJzXEwuLGPkV4nO9sQmfDd9wPLgBhBd/GzG05If+FUut8rG; 25:g6AGJ9CaIzR8oU5n2cRv/unkdoQfNBx3RE2t/5QgW1uFigLXZrIQQfj1umUglVue6J2nnYsoNX+HUU9DJ6oNMt0PHeOzX+lih+34oFHVitBrbuBWeRdcz4p36r49Sz1SjfOlzYyWl1C4lOsonm8RP2kcsmq8pLUTKocN5+mxH6REkJG11/49FfawMDRH0Ipbz0g/tA7ype8Wx8FZ6TLH0zGjEuf1fmS3VIjpFmyd5qCp5GnhIKDClR35gOLzUHnF3/hlQRjle0HDme1eEe+s0KF17DZgdCVnvzD6rK6XixmXdeI2+Z9u9mUxLZfU9CkSfA9cOpeqPiIx8gMKURaz/Q==; 31:fLpH+H8q8P2bRX0ibGW5W4FV6uJ8/oLZ9Efmu9yV1P8prpKWxfIERMR/J7gBU3NbEIHiobmJsNXnnnltINWO8WCOaHLKPierVa7MGT3MdNklcFG+sB/5k4L1BASgrVsHW5jHpWI5bXqMemz2SLgNhlX49i0NfzK8ilWidLVBwbHZIYqxUU0kY4fkDrvLh7Q1r2my3PkF3p2gygeVCKaBMykAHPxbvTV3w4JYS67CYuQ= X-MS-TrafficTypeDiagnostic: DB7PR04MB5306: X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB5306; 20:yt8tiP/CE4fweWTTSVLpGas72lzS57wAYMJoTz+iBqo5t1ak+a4zJviLgQKRF7+X0P+wcGK66Nfv3mAZ1fumzgOyHIHHL501oot7LXQNsAVut2A54MEWHzSMUGpyKCEnjAygSz1Ml8YFE3ljfcUj3M+SmwwkpQ9/xFJHEvY+dJypkC48Rz39QQVjQxTN1g6D+G3qAcszVbPfaGePS7t+X8hZNmd4w+RF3U3mtAR1TwDUkKw61Hxuqp5iKRY1kCxLeqYlS4UgWq852ti4pi7fEEd5FyqEyJ5HkG1nk4Jl0rF5lEZ6Yh8dtuqQOpGHwCivRD1r5bK9bnVHx1fWV0CRhHvm77uAI+N43eOE732cEt8yb/t218TK3Hr48v8xW/WU5GWWPuIpbOhVjZjr1bQJUtj2Jck8NgaksXptVATKHLSlzXsxSwK9fyfrEvRO6HxL9McMZjwj1HGFz4dlpbwgJipzd7R2bmlgblAwX8yjAhjcbDGlErDjQc2ySelIJmAQ; 4:99UXncnpvbsunnRIe6D2/KFR19Q8BHdsCoP3QfOyGbeqI9O2Fba14pLO7iB+iuuVHVnMT1d7FpiADyT5D1rPj+GgVNmZu7nb0BCSzMu/Yg5Xuk6uc8swXwdiDU+aWGtFifjaYY+GOdUcFALEufCGCLL9QG/+H1Qdp+iGl6Im61HODOVWYEI6hPjE+RVM6MrcZDZL0GO5046PYZqEpCSU+LqbZHo7EQ8bQY1jVIBkAzUb3MBqS19wUdCaR9KMpKBc6MpeO/ZFcJOkdP1JlyP7YDlnOIa9hT7rJ5b8ZlQEacsDrIGdHkkiq0oH8BQgEqmh X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:DB7PR04MB5306; BCL:0; PCL:0; RULEID:; SRVR:DB7PR04MB5306; X-Forefront-PRVS: 0717E25089 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(366004)(396003)(376002)(136003)(346002)(189003)(199004)(16586007)(6636002)(386003)(6666003)(81156014)(5660300001)(81166006)(52116002)(8936002)(76176011)(486006)(97736004)(11346002)(105586002)(14444005)(956004)(446003)(2616005)(6116002)(106356001)(48376002)(4326008)(3846002)(50466002)(6512007)(316002)(6506007)(68736007)(25786009)(51416003)(6486002)(7736002)(2906002)(305945005)(16526019)(86362001)(36756003)(186003)(53936002)(8676002)(44832011)(47776003)(66066001)(50226002)(26005)(478600001)(476003)(32563001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR04MB5306; H:ubuntu.localdomain; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB7PR04MB5306; 23:rRpBg0HyGTJ0wmgNB+cSecEAiQKBik9ybh1U3kBe1?= 5lVSBiO5Sg92AGKR2YK83wj4vkq/bb3hGVNssUtffBvOZlL4mnglOjdNnH6NLfaiQDrFVwCY75CGG0stkk2hMpbDPTTwTicDff8KGdsiw5gQVK3LD1zj8lQasZLe7I1TTzhNzj8N9AkgE5+gKhvxpbgvd4F3Q/XVRD6ihRE31wCEmOLYi2goluRMf9LMTj0l2wKrGrKKa8xKHtewAn4VrWTmO0/GJPnnGthFZ9a/t8eo4lkKTDAM9MYYM/DH4FvEldRxB193SKmpyN91WJz3BrGCLIJgXJZaiRGvwPgEpqZ75UaATEOFKJga7iOMVyh9X0ky6RYjEAbxxafGB1dCsatnyAR4snccZXmHHvxwKNI+pmAFe/qDbGoLBPpMoTJDOVSOPUd8jSZ19/yd/XCJV4a25ube+fwiVbaKmo3jg0WGAVpJEqaRJ3e9GVJ4O1v6/KzkVMedPHi7H0WMMBkCYOus6ESzY5uXxvKSUOiNmrYuA/RpT2ni6RtIYqwHBmIyFf1+8AwY64JPdjSWJainypArEVGRAFsceS3esQ+spVAWmAGJVXKYMj8UO75LLBUP/LBIXtrU+X3gXHqaFu73UK6s4+GaRch1OzLV6RP6SALMMdGcReHElSJy/9Q886KLrcIFwGLO04vlBjO+10GY5mRHqgx3AfYq4XNXHyScrQTj6pMFfnHGzL3j4uof1s8cTpPG5vnNXOO8wY1DWfoLABIULeb3DNvBR8OMxjUK4adU7tpxg0L2plATpkcW7B8+XEJsXvv+1yCXDGczuXY0GpNwaSqxOf+kUpWyV6r2Cb9HBCEo3pQiCkgmrZfPV9zyoVkImxWUI1nuirss2+zHvN3q9uaKzABVReU28fPGYBPFtqBqZD4CNo79zjkA1iB8UMlT8BCPnr8LSSPsNLhIFFxt0shYwCv33ojlLDsYWeqy0u6yoDLa/GVRKk86JYUHBdJx8SwyCpcuPKVSoqKj4KPYss8Vh2MeHjyCB0Jkd/5dXrkzGuFFT1XdS6A1Qa8qIuL9elOouSYYDQut/ZK4akn9BbsEvLeNNj2vwLPTSdYMjGPdAmEYrZmwPiFLDYlB6ZZwEC6CW1Vxcw/iQhVT7GEFrAdTBGSkOz+VJxwsDx2H7oZ+3fYpxQo7ld45ehvTPK0uhmYBL12dlylx8DBmek/HAEIi+q3h4uS9uZ6xa2OKw== X-Microsoft-Antispam-Message-Info: tpfge4/jLQqIiICPh9eo3QCUbKpt5lhqd2tJnQUETQrlEh1sXHEX1wsfLAxtYcspIKuyxVSzWoljc95fG/Z5DWAeNJ/naOSenKzfwegdsX+iKb6eQ8b/dEk1Ynqn/a+g5K0YJ0Kf56s9AzyJCQznivTTN4tQr3sxf1OnH9oU6r+w6AwL3DGLcDCWWs54QUqcfEv+UEMWHMOe+aVGgbmNX3XBM9nUgIqjmX6XAZkAhUuQZMzt9tXnV1dPlv6kM1XVMfup1pzmk0JqoQGJeRcBVIS9aBAQUPYX4DqjSaW614sYwHqAyACpCu097lg2HxVjtNoCi9dZD1BkzsHdVUW83wd74ghwQpqgaR/794+mFZ8= X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB5306; 6:RmQprCSMv/EQSnmA/518ES6oEC9MQTSEhSCTROkFWe4OODWwInJF6eJOMsaoOljra/VJTpeH1QH2ID/t+8/d0lXYZDK7AkvQw+nE1q8PiKY4DDyrXO2jy8JALXTUAqwEc/VbYjaxu8EoEmuydY8kNbevl/guF2QKj61N7pGanBlru5nv17o+Sy5OkI8OEXBZ6eQY5EZwqM6zz2vOw7F3frhYZgKDUzjts8i4fHCbrsfSHTBKj01m3y8OiifPt6oN4aNRFui5tc4A0wuB8F38W5yP/86zh1HeGpW8tPzqSVQEsizB0ijIYDnnEf7l+mXS42/+pAp+xjGmTyT1Lv8wN8tihBN4sKNXddyxeDOFPMdLflMp/X+xrBNrQUuRU9LR3rl4KA/IWhaeCkv3a7OU1KijyiTA5RU10fNs1+9gkKkhJy8goqCketpjX97isehby7yyMMpOXRWAfFpGfVbNew==; 5:OCm+NX+7OyMEXwsmqPf/reVEUuX0BTJtdpbfxDNPyoD9q3PTQX4WCblplsbr4dwVNjO3YQ0Thzjsq11ZCkzACcZTrXJIhtqcASqmCuqscDLdRkrt0TPo4FSD0+9VnW4XIADrAiEAccKAOgq7cDF2OnUAmbzFAmd4lcH3yGNU/TA=; 24:pB0VytaK8R3aeSpsAjIkHVKL6PgnPqs1zmxkno6Ym7Y2LTnKbvVD1jRoq15gvr4zaPWcEEvRB6W1vEqcMYrDEbli2Zt+a9rte1Odhnuwqu4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB7PR04MB5306; 7:3izQJr04rWqw0L+Vb3aQor1t1zxkmntI8gZULy0um7vC3HjEXkUp3GVgq4P0ZwTgKX+9pvDkjGifuqSFQnT3nBuMMjUzBswPYeDvVTISamIOYfAHEcV+2fGxk2bIQjrwbf5heVE8e1l0ueILvFiT66w7g9arE2rE6XLdeiIqw2E7raff3GWClHMG27fqNj6bj159zyxYBcyT99tJtAsXQthHa6oCJeeuby5XffOPGB6Uby06+f3bbNZe8Tbb5xy/ X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2018 03:23:49.4789 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e2938b9b-01ed-4c83-e35e-08d5dca691ec X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB5306 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH 3/3] imx: imx6ul_evk: Enable DM driver for iMX6UL EVK u-boot X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" Convert the codes and configurations to enable DM drivers in u-boot for modules: i2c, PMIC, regulator, USB, Ethernet, SD/MMC, GPIO and QSPI This patch does not change SPL, so it still uses non-DM driver for UART, GPIO and SD/MMC. Signed-off-by: Ye Li --- board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c | 208 +++++----------------- configs/mx6ul_14x14_evk_defconfig | 17 +- configs/mx6ul_9x9_evk_defconfig | 20 ++- include/configs/mx6ul_14x14_evk.h | 13 +- 4 files changed, 82 insertions(+), 176 deletions(-) diff --git a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c index 1c9ffda..595ad76 100644 --- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c +++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c @@ -59,158 +59,47 @@ DECLARE_GLOBAL_DATA_PTR; #define ENET_CLK_PAD_CTRL (PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST) -#define IOX_SDI IMX_GPIO_NR(5, 10) -#define IOX_STCP IMX_GPIO_NR(5, 7) -#define IOX_SHCP IMX_GPIO_NR(5, 11) -#define IOX_OE IMX_GPIO_NR(5, 8) - -static iomux_v3_cfg_t const iox_pads[] = { - /* IOX_SDI */ - MX6_PAD_BOOT_MODE0__GPIO5_IO10 | MUX_PAD_CTRL(NO_PAD_CTRL), - /* IOX_SHCP */ - MX6_PAD_BOOT_MODE1__GPIO5_IO11 | MUX_PAD_CTRL(NO_PAD_CTRL), - /* IOX_STCP */ - MX6_PAD_SNVS_TAMPER7__GPIO5_IO07 | MUX_PAD_CTRL(NO_PAD_CTRL), - /* IOX_nOE */ - MX6_PAD_SNVS_TAMPER8__GPIO5_IO08 | MUX_PAD_CTRL(NO_PAD_CTRL), -}; - -/* - * HDMI_nRST --> Q0 - * ENET1_nRST --> Q1 - * ENET2_nRST --> Q2 - * CAN1_2_STBY --> Q3 - * BT_nPWD --> Q4 - * CSI_RST --> Q5 - * CSI_PWDN --> Q6 - * LCD_nPWREN --> Q7 - */ -enum qn { - HDMI_NRST, - ENET1_NRST, - ENET2_NRST, - CAN1_2_STBY, - BT_NPWD, - CSI_RST, - CSI_PWDN, - LCD_NPWREN, -}; - -enum qn_func { - qn_reset, - qn_enable, - qn_disable, -}; - -enum qn_level { - qn_low = 0, - qn_high = 1, -}; - -static enum qn_level seq[3][2] = { - {0, 1}, {1, 1}, {0, 0} -}; - -static enum qn_func qn_output[8] = { - qn_reset, qn_reset, qn_reset, qn_enable, qn_disable, qn_reset, - qn_disable, qn_disable -}; +#define OTG_ID_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ + PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \ + PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) -static void iox74lv_init(void) +#ifdef CONFIG_DM_PMIC +int power_init_board(void) { - int i; + struct udevice *dev; + int ret, dev_id, rev_id; + unsigned int reg; + + ret = pmic_get("pfuze3000", &dev); + if (ret == -ENODEV) + return 0; + if (ret != 0) + return ret; - gpio_direction_output(IOX_OE, 0); + 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", dev_id, rev_id); - for (i = 7; i >= 0; i--) { - gpio_direction_output(IOX_SHCP, 0); - gpio_direction_output(IOX_SDI, seq[qn_output[i]][0]); - udelay(500); - gpio_direction_output(IOX_SHCP, 1); - udelay(500); - } + /* disable Low Power Mode during standby mode */ + reg = pmic_reg_read(dev, PFUZE3000_LDOGCTL); + reg |= 0x1; + pmic_reg_write(dev, PFUZE3000_LDOGCTL, reg); - gpio_direction_output(IOX_STCP, 0); - udelay(500); - /* - * shift register will be output to pins - */ - gpio_direction_output(IOX_STCP, 1); - - for (i = 7; i >= 0; i--) { - gpio_direction_output(IOX_SHCP, 0); - gpio_direction_output(IOX_SDI, seq[qn_output[i]][1]); - udelay(500); - gpio_direction_output(IOX_SHCP, 1); - udelay(500); - } - gpio_direction_output(IOX_STCP, 0); - udelay(500); - /* - * shift register will be output to pins - */ - gpio_direction_output(IOX_STCP, 1); -}; + /* SW1B step ramp up time from 2us to 4us/25mV */ + reg = 0x40; + pmic_reg_write(dev, PFUZE3000_SW1BCONF, reg); -#ifdef CONFIG_SYS_I2C_MXC -#define PC MUX_PAD_CTRL(I2C_PAD_CTRL) -/* I2C1 for PMIC and EEPROM */ -static struct i2c_pads_info i2c_pad_info1 = { - .scl = { - .i2c_mode = MX6_PAD_UART4_TX_DATA__I2C1_SCL | PC, - .gpio_mode = MX6_PAD_UART4_TX_DATA__GPIO1_IO28 | PC, - .gp = IMX_GPIO_NR(1, 28), - }, - .sda = { - .i2c_mode = MX6_PAD_UART4_RX_DATA__I2C1_SDA | PC, - .gpio_mode = MX6_PAD_UART4_RX_DATA__GPIO1_IO29 | PC, - .gp = IMX_GPIO_NR(1, 29), - }, -}; + /* SW1B mode to APS/PFM */ + reg = 0xc; + pmic_reg_write(dev, PFUZE3000_SW1BMODE, reg); -#ifdef CONFIG_POWER -#define I2C_PMIC 0 -int power_init_board(void) -{ - if (is_mx6ul_9x9_evk()) { - struct pmic *pfuze; - int ret; - unsigned int reg, rev_id; - - ret = power_pfuze3000_init(I2C_PMIC); - if (ret) - 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); - printf("PMIC: PFUZE3000 DEV_ID=0x%x REV_ID=0x%x\n", - reg, rev_id); - - /* disable Low Power Mode during standby mode */ - pmic_reg_write(pfuze, PFUZE3000_LDOGCTL, 0x1); - - /* SW1B step ramp up time from 2us to 4us/25mV */ - reg = 0x40; - pmic_reg_write(pfuze, PFUZE3000_SW1BCONF, reg); - - /* SW1B mode to APS/PFM */ - reg = 0xc; - pmic_reg_write(pfuze, PFUZE3000_SW1BMODE, reg); - - /* SW1B standby voltage set to 0.975V */ - reg = 0xb; - pmic_reg_write(pfuze, PFUZE3000_SW1BSTBY, reg); - } + /* SW1B standby voltage set to 0.975V */ + reg = 0xb; + pmic_reg_write(dev, PFUZE3000_SW1BSTBY, reg); return 0; } #endif -#endif int dram_init(void) { @@ -294,25 +183,8 @@ static void setup_iomux_uart(void) } #ifdef CONFIG_FSL_QSPI - -#define QSPI_PAD_CTRL1 \ - (PAD_CTL_SRE_FAST | PAD_CTL_SPEED_MED | \ - PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_PUS_47K_UP | PAD_CTL_DSE_120ohm) - -static iomux_v3_cfg_t const quadspi_pads[] = { - MX6_PAD_NAND_WP_B__QSPI_A_SCLK | MUX_PAD_CTRL(QSPI_PAD_CTRL1), - MX6_PAD_NAND_READY_B__QSPI_A_DATA00 | MUX_PAD_CTRL(QSPI_PAD_CTRL1), - MX6_PAD_NAND_CE0_B__QSPI_A_DATA01 | MUX_PAD_CTRL(QSPI_PAD_CTRL1), - MX6_PAD_NAND_CE1_B__QSPI_A_DATA02 | MUX_PAD_CTRL(QSPI_PAD_CTRL1), - MX6_PAD_NAND_CLE__QSPI_A_DATA03 | MUX_PAD_CTRL(QSPI_PAD_CTRL1), - MX6_PAD_NAND_DQS__QSPI_A_SS0_B | MUX_PAD_CTRL(QSPI_PAD_CTRL1), -}; - static int board_qspi_init(void) { - /* Set the iomux */ - imx_iomux_v3_setup_multiple_pads(quadspi_pads, - ARRAY_SIZE(quadspi_pads)); /* Set the clock */ enable_qspi_clk(0); @@ -349,6 +221,7 @@ int board_mmc_getcd(struct mmc *mmc) ret = 1; #else imx_iomux_v3_setup_pad(usdhc2_cd_pad); + gpio_request(USDHC2_CD_GPIO, "usdhc2 cd"); gpio_direction_input(USDHC2_CD_GPIO); /* @@ -393,6 +266,7 @@ int board_mmc_init(bd_t *bis) case 0: imx_iomux_v3_setup_multiple_pads( usdhc1_pads, ARRAY_SIZE(usdhc1_pads)); + gpio_request(USDHC1_CD_GPIO, "usdhc1 cd"); gpio_direction_input(USDHC1_CD_GPIO); usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK); @@ -408,6 +282,7 @@ int board_mmc_init(bd_t *bis) imx_iomux_v3_setup_multiple_pads( usdhc2_pads, ARRAY_SIZE(usdhc2_pads)); #endif + gpio_request(USDHC2_PWR_GPIO, "usdhc2 pwr"); gpio_direction_output(USDHC2_PWR_GPIO, 0); udelay(500); gpio_direction_output(USDHC2_PWR_GPIO, 1); @@ -430,11 +305,13 @@ int board_mmc_init(bd_t *bis) #endif #ifdef CONFIG_USB_EHCI_MX6 +#ifndef CONFIG_DM_USB + #define USB_OTHERREGS_OFFSET 0x800 #define UCTRL_PWR_POL (1 << 9) static iomux_v3_cfg_t const usb_otg_pads[] = { - MX6_PAD_GPIO1_IO00__ANATOP_OTG1_ID | MUX_PAD_CTRL(NO_PAD_CTRL), + MX6_PAD_GPIO1_IO00__ANATOP_OTG1_ID | MUX_PAD_CTRL(OTG_ID_PAD_CTRL), }; /* At default the 3v3 enables the MIC2026 for VBUS power */ @@ -468,6 +345,7 @@ int board_ehci_hcd_init(int port) return 0; } #endif +#endif #ifdef CONFIG_FEC_MXC /* @@ -606,11 +484,13 @@ static int setup_lcd(void) imx_iomux_v3_setup_multiple_pads(lcd_pads, ARRAY_SIZE(lcd_pads)); /* Reset the LCD */ + gpio_request(IMX_GPIO_NR(5, 9), "lcd reset"); gpio_direction_output(IMX_GPIO_NR(5, 9) , 0); udelay(500); gpio_direction_output(IMX_GPIO_NR(5, 9) , 1); /* Set Brightness to high */ + gpio_request(IMX_GPIO_NR(1, 8), "backlight"); gpio_direction_output(IMX_GPIO_NR(1, 8) , 1); return 0; @@ -629,21 +509,15 @@ int board_init(void) /* Address of boot parameters */ gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; - imx_iomux_v3_setup_multiple_pads(iox_pads, ARRAY_SIZE(iox_pads)); - - iox74lv_init(); - -#ifdef CONFIG_SYS_I2C_MXC - setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1); -#endif - #ifdef CONFIG_FEC_MXC setup_fec(CONFIG_FEC_ENET_DEV); #endif #ifdef CONFIG_USB_EHCI_MX6 +#ifndef CONFIG_DM_USB setup_usb(); #endif +#endif #ifdef CONFIG_FSL_QSPI board_qspi_init(); diff --git a/configs/mx6ul_14x14_evk_defconfig b/configs/mx6ul_14x14_evk_defconfig index 5dd45b5..68d8380 100644 --- a/configs/mx6ul_14x14_evk_defconfig +++ b/configs/mx6ul_14x14_evk_defconfig @@ -5,6 +5,7 @@ CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_TARGET_MX6UL_14X14_EVK=y +CONFIG_DEFAULT_DEVICE_TREE="imx6ul-14x14-evk" CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL=y @@ -29,11 +30,18 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_CMD_BMP=y CONFIG_CMD_CACHE=y +CONFIG_CMD_NET=y CONFIG_CMD_EXT2=y CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y +CONFIG_OF_CONTROL=y +CONFIG_DM_GPIO=y +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +CONFIG_DM_SPI=y +CONFIG_DM_SPI_FLASH=y CONFIG_ENV_IS_IN_MMC=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y CONFIG_FSL_ESDHC=y @@ -43,8 +51,15 @@ CONFIG_SPI_FLASH_STMICRO=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y CONFIG_SPI=y +CONFIG_SOFT_SPI=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_IMX6=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y CONFIG_FSL_QSPI=y CONFIG_USB=y +CONFIG_DM_USB=y CONFIG_USB_STORAGE=y CONFIG_VIDEO=y -CONFIG_OF_LIBFDT=y +CONFIG_DM_ETH=y diff --git a/configs/mx6ul_9x9_evk_defconfig b/configs/mx6ul_9x9_evk_defconfig index 3340089..f377dda 100644 --- a/configs/mx6ul_9x9_evk_defconfig +++ b/configs/mx6ul_9x9_evk_defconfig @@ -5,6 +5,7 @@ CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_TARGET_MX6UL_9X9_EVK=y +CONFIG_DEFAULT_DEVICE_TREE="imx6ul-9x9-evk" CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL=y @@ -29,11 +30,18 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_CMD_BMP=y CONFIG_CMD_CACHE=y +CONFIG_CMD_NET=y CONFIG_CMD_EXT2=y CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y +CONFIG_OF_CONTROL=y +CONFIG_DM_GPIO=y +CONFIG_DM_I2C=y +CONFIG_DM_MMC=y +CONFIG_DM_SPI=y +CONFIG_DM_SPI_FLASH=y CONFIG_ENV_IS_IN_MMC=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y CONFIG_FSL_ESDHC=y @@ -43,8 +51,18 @@ CONFIG_SPI_FLASH_STMICRO=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y CONFIG_SPI=y +CONFIG_SOFT_SPI=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_IMX6=y +CONFIG_DM_PMIC=y +CONFIG_DM_PMIC_PFUZE100=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_PFUZE100=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y CONFIG_FSL_QSPI=y CONFIG_USB=y +CONFIG_DM_USB=y CONFIG_USB_STORAGE=y CONFIG_VIDEO=y -CONFIG_OF_LIBFDT=y +CONFIG_DM_ETH=y diff --git a/include/configs/mx6ul_14x14_evk.h b/include/configs/mx6ul_14x14_evk.h index 31305aa..b31d85e 100644 --- a/include/configs/mx6ul_14x14_evk.h +++ b/include/configs/mx6ul_14x14_evk.h @@ -38,17 +38,14 @@ /* I2C configs */ #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 +#endif -/* PMIC only for 9X9 EVK */ -#define CONFIG_POWER -#define CONFIG_POWER_I2C -#define CONFIG_POWER_PFUZE3000 -#define CONFIG_POWER_PFUZE3000_I2C_ADDR 0x08 +#ifdef CONFIG_DM_GPIO +#define CONFIG_DM_74X164 #endif #define CONFIG_SYS_MMC_IMG_LOAD_PART 1 @@ -170,6 +167,7 @@ #endif #ifdef CONFIG_FSL_QSPI +#define CONFIG_SYS_FSL_QSPI_AHB #define CONFIG_SF_DEFAULT_BUS 0 #define CONFIG_SF_DEFAULT_CS 0 #define CONFIG_SF_DEFAULT_SPEED 40000000 @@ -195,12 +193,13 @@ #define IMX_FEC_BASE ENET_BASE_ADDR #define CONFIG_FEC_MXC_PHYADDR 0x2 #define CONFIG_FEC_XCV_TYPE RMII +#define CONFIG_ETHPRIME "eth0" #elif (CONFIG_FEC_ENET_DEV == 1) #define IMX_FEC_BASE ENET2_BASE_ADDR #define CONFIG_FEC_MXC_PHYADDR 0x1 #define CONFIG_FEC_XCV_TYPE RMII +#define CONFIG_ETHPRIME "eth1" #endif -#define CONFIG_ETHPRIME "FEC" #endif #define CONFIG_IMX_THERMAL