mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-29 13:28:52 +09:00
![Tim Harvey](/assets/img/avatar_default.png)
The GW5905 is single-board tablet computer based on the i.MX6 SoC with the following peripheral set: - eMMC flash (boot device) - microSD expansion - LVDS display connector for off-board 3D+1C with PWM backlight and I2C based touch controller - MIPI camera connector supporting the TRULY CM8487-B500SA-E (OV5640) - ublox EMMY-W1 WiFi/Bluetooth/NFC module (SDIO/UART) - ublox ZOE-M8Q GPS - LSM9DS1 9-DOF IMU - 1x 1-lane miniPCIe socket with USB 2.0 - Gateworks System Controller - Audio jack with TLV320AIC Audio Codec, Speaker AMP and TSA227E Headphone detect - MAX8607 3-mode LED camera flash - DECT ULE module - FUSB302 USB-C PD and ISL9238 Battery charger Signed-off-by: Tim Harvey <tharvey@gateworks.com>
72 lines
1.8 KiB
C
72 lines
1.8 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright (C) 2013 Gateworks Corporation
|
|
*
|
|
* Author: Tim Harvey <tharvey@gateworks.com>
|
|
*/
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
/* i2c slave addresses */
|
|
#define GSC_SC_ADDR 0x20
|
|
#define GSC_RTC_ADDR 0x68
|
|
#define GSC_HWMON_ADDR 0x29
|
|
#define GSC_EEPROM_ADDR 0x51
|
|
|
|
/* System Controller registers */
|
|
enum {
|
|
GSC_SC_CTRL0 = 0x00,
|
|
GSC_SC_CTRL1 = 0x01,
|
|
GSC_SC_STATUS = 0x0a,
|
|
GSC_SC_FWCRC = 0x0c,
|
|
GSC_SC_FWVER = 0x0e,
|
|
};
|
|
|
|
/* System Controller Control1 bits */
|
|
enum {
|
|
GSC_SC_CTRL1_WDTIME = 4, /* 1 = 60s timeout, 0 = 30s timeout */
|
|
GSC_SC_CTRL1_WDEN = 5, /* 1 = enable, 0 = disable */
|
|
GSC_SC_CTRL1_WDDIS = 7, /* 1 = disable boot watchdog */
|
|
};
|
|
|
|
/* System Controller Interrupt bits */
|
|
enum {
|
|
GSC_SC_IRQ_PB = 0, /* Pushbutton switch */
|
|
GSC_SC_IRQ_SECURE = 1, /* Secure Key erase operation complete */
|
|
GSC_SC_IRQ_EEPROM_WP = 2, /* EEPROM write violation */
|
|
GSC_SC_IRQ_GPIO = 4, /* GPIO change */
|
|
GSC_SC_IRQ_TAMPER = 5, /* Tamper detect */
|
|
GSC_SC_IRQ_WATCHDOG = 6, /* Watchdog trip */
|
|
GSC_SC_IRQ_PBLONG = 7, /* Pushbutton long hold */
|
|
};
|
|
|
|
/* Hardware Monitor registers */
|
|
enum {
|
|
GSC_HWMON_TEMP = 0x00,
|
|
GSC_HWMON_VIN = 0x02,
|
|
GSC_HWMON_VDD_3P3 = 0x05,
|
|
GSC_HWMON_VBATT = 0x08,
|
|
GSC_HWMON_VDD_5P0 = 0x0b,
|
|
GSC_HWMON_VDD_CORE = 0x0e,
|
|
GSC_HWMON_VDD_SOC = 0x11,
|
|
GSC_HWMON_VDD_HIGH = 0x14,
|
|
GSC_HWMON_VDD_DDR = 0x17,
|
|
GSC_HWMON_VDD_EXT = 0x1a,
|
|
GSC_HWMON_VDD_1P8 = 0x1d,
|
|
GSC_HWMON_VDD_IO2 = 0x20,
|
|
GSC_HWMON_VDD_2P5 = 0x23,
|
|
GSC_HWMON_VDD_IO3 = 0x26,
|
|
GSC_HWMON_VDD_IO4 = 0x29,
|
|
};
|
|
|
|
/*
|
|
* I2C transactions to the GSC are done via these functions which
|
|
* perform retries in the case of a busy GSC NAK'ing the transaction
|
|
*/
|
|
int gsc_i2c_read(uchar chip, uint addr, int alen, uchar *buf, int len);
|
|
int gsc_i2c_write(uchar chip, uint addr, int alen, uchar *buf, int len);
|
|
int gsc_info(int verbose);
|
|
int gsc_boot_wd_disable(void);
|
|
#endif
|
|
|