mirror of
https://github.com/smaeul/u-boot.git
synced 2025-09-14 22:16:03 +01:00
The Asus Eee Pad Transformer family are 2-in-1 detachable/slider tablets developed by Asus that run the Android operating system. The Eee Pad Transformers feature a 10.1-inch (260 mm) display, an Nvidia Tegra 2 dual-core chip, 1 GB of RAM, and 16/32 GB of storage. Transformers board derives from Nvidia Ventana development board. This patch brings support for all 3 known T20 Transformers: - Asus Eee Pad Transformer TF101 - Asus Eee Pad Transformer TF101G - Asus Eee Pad Slider SL101 Tested-by: Robert Eckelmann <longnoserob@gmail.com> # ASUS TF101 Tested-by: Antoni Aloy Torrens <aaloytorrens@gmail.com> # ASUS TF101 Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
58 lines
1.2 KiB
C
58 lines
1.2 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* (C) Copyright 2010,2011
|
|
* NVIDIA Corporation <www.nvidia.com>
|
|
*
|
|
* (C) Copyright 2021
|
|
* Svyatoslav Ryhel <clamor95@gmail.com>
|
|
*/
|
|
|
|
/* T20 Transformers derive from Ventana board */
|
|
|
|
#include <dm.h>
|
|
#include <i2c.h>
|
|
#include <log.h>
|
|
#include <linux/delay.h>
|
|
|
|
#define TPS6586X_I2C_ADDRESS 0x34
|
|
#define TPS6586X_SUPPLYENE 0x14
|
|
#define EXITSLREQ_BIT BIT(1)
|
|
#define SLEEP_MODE_BIT BIT(3)
|
|
|
|
#ifdef CONFIG_CMD_POWEROFF
|
|
int do_poweroff(struct cmd_tbl *cmdtp,
|
|
int flag, int argc, char *const argv[])
|
|
{
|
|
struct udevice *dev;
|
|
uchar data_buffer[1];
|
|
int ret;
|
|
|
|
ret = i2c_get_chip_for_busnum(0, TPS6586X_I2C_ADDRESS, 1, &dev);
|
|
if (ret) {
|
|
log_debug("cannot find PMIC I2C chip\n");
|
|
return 0;
|
|
}
|
|
|
|
ret = dm_i2c_read(dev, TPS6586X_SUPPLYENE, data_buffer, 1);
|
|
if (ret)
|
|
return ret;
|
|
|
|
data_buffer[0] &= ~EXITSLREQ_BIT;
|
|
|
|
ret = dm_i2c_write(dev, TPS6586X_SUPPLYENE, data_buffer, 1);
|
|
if (ret)
|
|
return ret;
|
|
|
|
data_buffer[0] |= SLEEP_MODE_BIT;
|
|
|
|
ret = dm_i2c_write(dev, TPS6586X_SUPPLYENE, data_buffer, 1);
|
|
if (ret)
|
|
return ret;
|
|
|
|
// wait some time and then print error
|
|
mdelay(5000);
|
|
printf("Failed to power off!!!\n");
|
|
return 1;
|
|
}
|
|
#endif
|