All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] T210: P2571: Enable SD-card power via PMIC LDO2
@ 2015-07-29 16:24 Tom Warren
  2015-07-29 16:24 ` [U-Boot] [PATCH] T210: P2571: Restore USB gadget mode (ums) Tom Warren
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Tom Warren @ 2015-07-29 16:24 UTC (permalink / raw)
  To: u-boot

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, &reg->cmd_addr0);
-	writel(config, &reg->cnfg);
-}
-
-void tegra_i2c_ll_write_data(uint data, uint config)
-{
-	struct i2c_ctlr *reg = (struct i2c_ctlr *)TEGRA_DVC_BASE;
-
-	writel(data, &reg->cmd_data1);
-	writel(config, &reg->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

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-08-05 19:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-29 16:24 [U-Boot] [PATCH] T210: P2571: Enable SD-card power via PMIC LDO2 Tom Warren
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

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.