From: Tom Warren <twarren@nvidia.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] T210: P2571: Enable SD-card power via PMIC LDO2
Date: Wed, 29 Jul 2015 09:24:20 -0700 [thread overview]
Message-ID: <1438187063-3400-1-git-send-email-twarren@nvidia.com> (raw)
This was done in the 32-bit AVP loader (SPL) but is
board-specific so should be moved to the CPU portion.
Signed-off-by: Tom Warren <twarren@nvidia.com>
---
board/nvidia/p2571/Makefile | 1 -
board/nvidia/p2571/max77620_init.c | 85 --------------------------------------
board/nvidia/p2571/max77620_init.h | 3 +-
board/nvidia/p2571/p2571.c | 22 ++++++++++
4 files changed, 24 insertions(+), 87 deletions(-)
delete mode 100644 board/nvidia/p2571/max77620_init.c
diff --git a/board/nvidia/p2571/Makefile b/board/nvidia/p2571/Makefile
index 223062e..627b7ef 100644
--- a/board/nvidia/p2571/Makefile
+++ b/board/nvidia/p2571/Makefile
@@ -5,5 +5,4 @@
# SPDX-License-Identifier: GPL-2.0+
#
-obj-y += max77620_init.o
obj-y += p2571.o
diff --git a/board/nvidia/p2571/max77620_init.c b/board/nvidia/p2571/max77620_init.c
deleted file mode 100644
index ed8d4dc..0000000
--- a/board/nvidia/p2571/max77620_init.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * (C) Copyright 2013-2015
- * NVIDIA Corporation <www.nvidia.com>
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#include <common.h>
-#include <asm/io.h>
-#include <asm/arch-tegra/tegra_i2c.h>
-#include "max77620_init.h"
-
-/* MAX77620-PMIC-specific early init code - get CPU rails up, etc */
-
-void tegra_i2c_ll_write_addr(uint addr, uint config)
-{
- struct i2c_ctlr *reg = (struct i2c_ctlr *)TEGRA_DVC_BASE;
-
- writel(addr, ®->cmd_addr0);
- writel(config, ®->cnfg);
-}
-
-void tegra_i2c_ll_write_data(uint data, uint config)
-{
- struct i2c_ctlr *reg = (struct i2c_ctlr *)TEGRA_DVC_BASE;
-
- writel(data, ®->cmd_data1);
- writel(config, ®->cnfg);
-}
-
-void pmic_enable_cpu_vdd(void)
-{
- uint reg;
- debug("%s entry\n", __func__);
-
- /* Setup/Enable GPIO5 - VDD_CPU_REG_EN */
- debug("%s: Setting GPIO5 to enable CPU regulator\n", __func__);
- /* B3=1=logic high,B2=dontcare,B1=0=output,B0=1=push-pull */
- reg = 0x0900 | MAX77620_GPIO5_REG;
- tegra_i2c_ll_write_addr(MAX77620_I2C_ADDR, 2);
- tegra_i2c_ll_write_data(reg, I2C_SEND_2_BYTES);
- udelay(10 * 1000);
-
- /* Setup/Enable GPIO1 - VDD_HDMI_5V0_BST_EN */
- debug("%s: Setting GPIO1 to enable HDMI\n", __func__);
- reg = 0x0900 | MAX77620_GPIO1_REG;
- tegra_i2c_ll_write_addr(MAX77620_I2C_ADDR, 2);
- tegra_i2c_ll_write_data(reg, I2C_SEND_2_BYTES);
- udelay(10 * 1000);
-
- /* GPIO 0,1,5,6,7 = GPIO, 2,3,4 = alt mode */
- reg = 0x1C00 | MAX77620_AME_GPIO;
- tegra_i2c_ll_write_addr(MAX77620_I2C_ADDR, 2);
- tegra_i2c_ll_write_data(reg, I2C_SEND_2_BYTES);
- udelay(10 * 1000);
-
- /* Disable SD1 Remote Sense, Set SD1 for LPDDR4 to 1.125v */
- debug("%s: Set SD1 for LPDDR4, disable SD1RS, voltage to 1.125v\n",
- __func__);
- /* bit1=0, SD1 remote sense disabled */
- reg = 0x0400 | MAX77620_CNFG2SD_REG;
- tegra_i2c_ll_write_addr(MAX77620_I2C_ADDR, 2);
- tegra_i2c_ll_write_data(reg, I2C_SEND_2_BYTES);
- udelay(10 * 1000);
-
- /* SD1 output = 1.125V */
- reg = 0x2A00 | MAX77620_SD1_REG;
- tegra_i2c_ll_write_addr(MAX77620_I2C_ADDR, 2);
- tegra_i2c_ll_write_data(reg, I2C_SEND_2_BYTES);
- udelay(10 * 1000);
-
- debug("%s: Set LDO2 for VDDIO_SDMMC_AP power to 3.3V\n", __func__);
- /* 0xF2 for 3.3v, enabled: bit7:6 = 11 = enable, bit5:0 = voltage */
- reg = 0xF200 | MAX77620_CNFG1_L2_REG;
- tegra_i2c_ll_write_addr(MAX77620_I2C_ADDR, 2);
- tegra_i2c_ll_write_data(reg, I2C_SEND_2_BYTES);
- udelay(10 * 1000);
-
- debug("%s: Set LDO1 for USB3 phy power to 1.05V??\n", __func__);
- /* 0xCA for 105v, enabled: bit7:6 = 11 = enable, bit5:0 = voltage */
- reg = 0xCA00 | MAX77620_CNFG1_L1_REG;
- tegra_i2c_ll_write_addr(MAX77620_I2C_ADDR, 2);
- tegra_i2c_ll_write_data(reg, I2C_SEND_2_BYTES);
- udelay(10 * 1000);
-}
diff --git a/board/nvidia/p2571/max77620_init.h b/board/nvidia/p2571/max77620_init.h
index 9d5cce7..92c3719 100644
--- a/board/nvidia/p2571/max77620_init.h
+++ b/board/nvidia/p2571/max77620_init.h
@@ -10,7 +10,8 @@
/* MAX77620-PMIC-specific early init regs */
-#define MAX77620_I2C_ADDR 0x78 /* or 0x3C 7-bit */
+#define MAX77620_I2C_ADDR 0x78
+#define MAX77620_I2C_ADDR_7BIT 0x3C
#define MAX77620_SD0_REG 0x16
#define MAX77620_SD1_REG 0x17
diff --git a/board/nvidia/p2571/p2571.c b/board/nvidia/p2571/p2571.c
index fc710c1..842242c 100644
--- a/board/nvidia/p2571/p2571.c
+++ b/board/nvidia/p2571/p2571.c
@@ -6,10 +6,32 @@
*/
#include <common.h>
+#include <i2c.h>
#include <asm/arch/gpio.h>
#include <asm/arch/pinmux.h>
+#include "max77620_init.h"
#include "pinmux-config-p2571.h"
+void pin_mux_mmc(void)
+{
+ struct udevice *dev;
+ uchar val;
+ int ret;
+
+ /* Turn on MAX77620 LDO2 to 3.3V for SD card power */
+ debug("%s: Set LDO2 for VDDIO_SDMMC_AP power to 3.3V\n", __func__);
+ ret = i2c_get_chip_for_busnum(0, MAX77620_I2C_ADDR_7BIT, 1, &dev);
+ if (ret) {
+ printf("%s: Cannot find MAX77620 I2C chip\n", __func__);
+ return;
+ }
+ /* 0xF2 for 3.3v, enabled: bit7:6 = 11 = enable, bit5:0 = voltage */
+ val = 0xF2;
+ ret = dm_i2c_write(dev, MAX77620_CNFG1_L2_REG, &val, 1);
+ if (ret)
+ printf("i2c_write 0 0x3c 0x27 failed: %d\n", ret);
+}
+
/*
* Routine: pinmux_init
* Description: Do individual peripheral pinmux configs
--
1.8.2.1.610.g562af5b
next reply other threads:[~2015-07-29 16:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-29 16:24 Tom Warren [this message]
2015-07-29 16:24 ` [U-Boot] [PATCH] T210: P2571: Restore USB gadget mode (ums) Tom Warren
2015-07-29 16:24 ` [U-Boot] [PATCH] T210: P2571: Turn CPU fan on Tom Warren
2015-07-29 16:24 ` [U-Boot] [PATCH] Tegra: Allow TZ writes to VPR aperature regs Tom Warren
2015-08-05 19:51 ` Stephen Warren
2015-08-05 19:57 ` Tom Warren
2015-07-29 18:19 ` [U-Boot] [PATCH] T210: P2571: Enable SD-card power via PMIC LDO2 Stephen Warren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1438187063-3400-1-git-send-email-twarren@nvidia.com \
--to=twarren@nvidia.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.