T210: P2571: Enable SD-card power via PMIC LDO2
Subsystems (3)
PATCH 1/1 T210: P2571: Enable SD-card power via PMIC LDO2
This was done in the 32-bit AVP loader (SPL) but is board-specific so should be moved to the CPU portion.
--- 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
board/nvidia/p2571/Makefile +0 -1
@@ -5,5 +5,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -obj-y += max77620_init.o obj-y += p2571.o
board/nvidia/p2571/max77620_init.c deleted +0 -85
85 lines not on this page · raw message
board/nvidia/p2571/max77620_init.h +2 -1
@@ -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
board/nvidia/p2571/p2571.c +22 -0
@@ -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
Signature · 1 line
1.8.2.1.610.g562af5b
PATCH 1/1 T210: P2571: Restore USB gadget mode (ums)
The tegra-common-usb-gadget.h include was causing some build problems in ci_udc.c with a 64-bit gcc in an earlier version of the T210 patches, but it is working fine now, so restore it.
--- include/configs/p2571.h | 1 + 1 file changed, 1 insertion(+)
include/configs/p2571.h +1 -0
@@ -68,6 +68,7 @@* TODO(twarren at nvidia.com) - add tegra-common-usb-gadget.h back * breaks 64-bit build in ci_udc.c */ +#include "tegra-common-usb-gadget.h" #include "tegra-common-post.h" #define COUNTER_FREQUENCY 38400000
Signature · 1 line
1.8.2.1.610.g562af5b
PATCH 1/1 T210: P2571: Turn CPU fan on
In reply to Tom WarrenCPU board (E2530) has a fan - turn it on via GPIO to keep the SoC cool.
--- arch/arm/mach-tegra/board2.c | 3 +++ board/nvidia/p2571/p2571.c | 12 ++++++++++++ 2 files changed, 15 insertions(+)
arch/arm/mach-tegra/board2.c +3 -0
@@ -60,6 +60,7 @@ __weak void pin_mux_usb(void) {}__weak void pin_mux_spi (void ) {}__weak void gpio_early_init_uart (void ) {}__weak void pin_mux_display (void ) {} +__weak void start_cpu_fan (void ) {}#if defined(CONFIG_TEGRA_NAND )__weak void pin_mux_nand (void )
@@ -230,6 +231,8 @@ int board_late_init(void) setenv("cpu_ns_mode", ""); }#endif +start_cpu_fan (); +return 0 ; }
board/nvidia/p2571/p2571.c +12 -0
@@ -9,6 +9,7 @@#include <i2c.h> #include <asm/arch/gpio.h> #include <asm/arch/pinmux.h> +#include <asm/gpio.h> #include "max77620_init.h" #include "pinmux-config-p2571.h"
@@ -49,3 +50,14 @@ void pinmux_init(void)pinmux_config_drvgrp_table (p2571_drvgrps,ARRAY_SIZE (p2571_drvgrps)); } + +/* +* Routine: start_cpu_fan +* Description: Enable/start PWM CPU fan on Foster-FFD +*/ +void start_cpu_fan (void ) +{ +/* GPIO_PE4 is PS_VDD_FAN_ENABLE */ +gpio_request (GPIO_PE4 ,"FAN_VDD" ); +gpio_direction_output (GPIO_PE4 ,1 ); +}
Signature · 1 line
1.8.2.1.610.g562af5b
PATCH 1/1 Tegra: Allow TZ writes to VPR aperature regs
In reply to Tom WarrenVPR (Video Protect Region) may be reconfigured from secure code in the kernel/OS. Set the ALLOW_TZ_WRITE_ACCESS bit in REG_CTRL to allow this. Also used common CONFIG option (CONFIG_LOCK_VPR) in T124/T210 builds to enable VPR setup.
--- arch/arm/include/asm/arch-tegra124/mc.h | 2 ++ arch/arm/include/asm/arch-tegra210/mc.h | 2 ++ arch/arm/mach-tegra/Makefile | 4 +--- arch/arm/mach-tegra/vpr.c | 9 +++++++-- include/configs/tegra124-common.h | 3 +++ include/configs/tegra210-common.h | 3 +++ 6 files changed, 18 insertions(+), 5 deletions(-)
arch/arm/include/asm/arch-tegra124/mc.h +2 -0
@@ -78,5 +78,7 @@ struct mc_ctlr {#define TEGRA_MC_VIDEO_PROTECT_REG_WRITE_ACCESS_ENABLED (0 << 0)#define TEGRA_MC_VIDEO_PROTECT_REG_WRITE_ACCESS_DISABLED (1 << 0) +#define TEGRA_MC_VIDEO_PROTECT_ALLOW_TZ_WRITE_ACCESS_DISABLED (0 << 1) +#define TEGRA_MC_VIDEO_PROTECT_ALLOW_TZ_WRITE_ACCESS_ENABLED (1 << 1)#endif /* _TEGRA124_MC_H_ */
arch/arm/include/asm/arch-tegra210/mc.h +2 -0
@@ -68,5 +68,7 @@ struct mc_ctlr {#define TEGRA_MC_VIDEO_PROTECT_REG_WRITE_ACCESS_ENABLED (0 << 0)#define TEGRA_MC_VIDEO_PROTECT_REG_WRITE_ACCESS_DISABLED (1 << 0) +#define TEGRA_MC_VIDEO_PROTECT_ALLOW_TZ_WRITE_ACCESS_DISABLED (0 << 1) +#define TEGRA_MC_VIDEO_PROTECT_ALLOW_TZ_WRITE_ACCESS_ENABLED (1 << 1)#endif /* _TEGRA210_MC_H_ */
arch/arm/mach-tegra/Makefile +1 -3
@@ -24,9 +24,7 @@ obj-y += pinmux-common.o obj-y += powergate.o obj-y += xusb-padctl.o obj-$(CONFIG_DISPLAY_CPUINFO) += sys_info.o -#TCW Fix this to use a common config switch (CONFIG_LOCK_VPR?) -obj-$(CONFIG_TEGRA124) += vpr.o -obj-$(CONFIG_TEGRA210) += vpr.o +obj-$(CONFIG_LOCK_VPR) += vpr.o obj-$(CONFIG_TEGRA_CLOCK_SCALING) += emc.o ifndef CONFIG_SPL_BUILD
arch/arm/mach-tegra/vpr.c +7 -2
@@ -21,14 +21,19 @@#include <asm/arch/tegra.h> #include <asm/arch/mc.h> -/* Configures VPR. Right now, all we do is turn it off. */ +/* +* Configures VPR. Right now, all we do is turn it off. +* But we set ALLOW_TZ_WRITE_ACCESS so secure code +* in the kernel/OS can reconfig it later if needed. +*/ void config_vpr (void ) {struct mc_ctlr *mc = (struct mc_ctlr *)NV_PA_MC_BASE ;/* Turn VPR off */ writel (0 , &mc->mc_video_protect_size_mb); -writel (TEGRA_MC_VIDEO_PROTECT_REG_WRITE_ACCESS_DISABLED , +writel (TEGRA_MC_VIDEO_PROTECT_REG_WRITE_ACCESS_DISABLED | +TEGRA_MC_VIDEO_PROTECT_ALLOW_TZ_WRITE_ACCESS_ENABLED , &mc->mc_video_protect_reg_ctrl);/* read back to ensure the write went through */ readl (&mc->mc_video_protect_reg_ctrl);
include/configs/tegra124-common.h +3 -0
@@ -70,4 +70,7 @@#define CONFIG_USB_EHCI_TXFIFO_THRESH 0x10#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 1 +/* Set up VPR (Video Protect Region) */ +#define CONFIG_LOCK_VPR +#endif /* _TEGRA124_COMMON_H_ */
include/configs/tegra210-common.h +3 -0
@@ -73,4 +73,7 @@#define CONFIG_USB_EHCI_TXFIFO_THRESH 0x10#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 1 +/* Set up VPR (Video Protect Region) */ +#define CONFIG_LOCK_VPR +#endif /* _TEGRA210_COMMON_H_ */
Signature · 1 line
1.8.2.1.610.g562af5b
PATCH 1/1 Tegra: Allow TZ writes to VPR aperature regs
Quoted 5 lines · Tom Warren
VPR (Video Protect Region) may be reconfigured from secure code in the kernel/OS. Set the
ALLOW_TZ_WRITE_ACCESSbit inREG_CTRLto allow this. Also used common CONFIG option (CONFIG_LOCK_VPR) in T124/T210 builds to enable VPR setup.
I haven't investigated this much, but it seems fine.
PATCH 1/1 Tegra: Allow TZ writes to VPR aperature regs
Stephen,
Quoted 9 lines
-----Original Message-----
From: Stephen Warren [mailto:swarren at wwwdotorg.org]
Sent: Wednesday, August 05, 2015 12:52 PM
To: Tom Warren
Cc: u-boot at lists.denx.de; Thierry Reding; Stephen Warren; tomcwarren3959 at gmail.com
Subject: Re: [U-Boot] [PATCH] Tegra: Allow TZ writes to VPR aperature regsOn 07/29/2015 10:24 AM, Tom Warren wrote:
Quoted 8 lines
Quoted 4 lines
VPR (Video Protect Region) may be reconfigured from secure code in the kernel/OS. Set the
ALLOW_TZ_WRITE_ACCESSbit inREG_CTRLto allow this. Also used common CONFIG option (CONFIG_LOCK_VPR) in T124/T210 builds to enable VPR setup.Acked-by Stephen Warren <[email protected]>I haven't investigated this much, but it seems fine.
Thanks, but I'm dropping this patch. I've added Alex's 2 GPU/VPR patches, so this isn't needed (and enabling TZ writes is only done for dynamic VPR, which I've learned isn't needed/used).
Tom
--
nvpublic
PATCH 1/1 T210: P2571: Enable SD-card power via PMIC LDO2
In reply to Tom WarrenQuoted 2 lines · Tom Warren
This was done in the 32-bit AVP loader (SPL) but is board-specific so should be moved to the CPU portion.
For:
T210: P2571: Enable SD-card power via PMIC LDO2
T210: P2571: Restore USB gadget mode (ums)
T210: P2571: Turn CPU fan on
(the line lengths in the commit messages are very short...)
For:
Tegra: Allow TZ writes to VPR aperature regs
I need to learn/think some more to review that.