diff options
author | Olivier Deprez <o-deprez@ti.com> | 2012-11-21 15:50:11 +0100 |
---|---|---|
committer | Ryan Harkin <ryan.harkin@linaro.org> | 2013-03-14 17:00:40 +0000 |
commit | 575a727bb60efec19e1398d62c1a411e6bc5edc7 (patch) | |
tree | c953061ca2b68e25607b5d8876ad2b6dc247a4ee /Omap44xxPkg | |
parent | 103daa8600809aae6fb0dd14a56cd116a711c89b (diff) | |
download | juice-575a727bb60efec19e1398d62c1a411e6bc5edc7.tar.gz |
panda: adapted for panda pmic support
Files were inherited from Beagle/TPS65650.
Adapted to support TWL6030/Phoenix on PandaBoard
Diffstat (limited to 'Omap44xxPkg')
-rw-r--r-- | Omap44xxPkg/Include/Omap4430/Omap4430I2c.h | 42 | ||||
-rw-r--r-- | Omap44xxPkg/Include/TWL6030.h | 28 | ||||
-rw-r--r-- | Omap44xxPkg/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h | 2 | ||||
-rw-r--r-- | Omap44xxPkg/Library/RealTimeClockLib/RealTimeClockLib.c | 36 | ||||
-rw-r--r-- | Omap44xxPkg/PciEmulation/PciEmulation.c | 12 | ||||
-rw-r--r-- | Omap44xxPkg/PciEmulation/PciEmulation.h | 2 | ||||
-rw-r--r-- | Omap44xxPkg/TWL6030Dxe/TWL6030.c | 4 | ||||
-rw-r--r-- | Omap44xxPkg/TWL6030Dxe/TWL6030.inf | 6 |
8 files changed, 65 insertions, 67 deletions
diff --git a/Omap44xxPkg/Include/Omap4430/Omap4430I2c.h b/Omap44xxPkg/Include/Omap4430/Omap4430I2c.h index c593063ac..50d5a4a05 100644 --- a/Omap44xxPkg/Include/Omap4430/Omap4430I2c.h +++ b/Omap44xxPkg/Include/Omap4430/Omap4430I2c.h @@ -18,27 +18,27 @@ //I2C register definitions. #define I2C1BASE 0x48070000 -#define I2C_IE (I2C1BASE + 0x4) +#define I2C_IE (I2C1BASE + 0x84) #define XRDY_IE BIT4 #define RRDY_IE BIT3 #define ARDY_IE BIT2 #define NACK_IE BIT1 -#define I2C_STAT (I2C1BASE + 0x8) +#define I2C_STAT (I2C1BASE + 0x88) #define BB BIT12 #define XRDY BIT4 #define RRDY BIT3 #define ARDY BIT2 #define NACK BIT1 -#define I2C_WE (I2C1BASE + 0xC) -#define I2C_SYSS (I2C1BASE + 0x10) -#define I2C_BUF (I2C1BASE + 0x14) -#define I2C_CNT (I2C1BASE + 0x18) -#define I2C_DATA (I2C1BASE + 0x1C) -#define I2C_SYSC (I2C1BASE + 0x20) +#define I2C_WE (I2C1BASE + 0x34) +#define I2C_SYSS (I2C1BASE + 0x90) +#define I2C_BUF (I2C1BASE + 0x94) +#define I2C_CNT (I2C1BASE + 0x98) +#define I2C_DATA (I2C1BASE + 0x9C) +#define I2C_SYSC (I2C1BASE + 0x10) -#define I2C_CON (I2C1BASE + 0x24) +#define I2C_CON (I2C1BASE + 0xA4) #define STT BIT0 #define STP BIT1 #define XSA BIT8 @@ -46,17 +46,17 @@ #define MST BIT10 #define I2C_EN BIT15 -#define I2C_OA0 (I2C1BASE + 0x28) -#define I2C_SA (I2C1BASE + 0x2C) -#define I2C_PSC (I2C1BASE + 0x30) -#define I2C_SCLL (I2C1BASE + 0x34) -#define I2C_SCLH (I2C1BASE + 0x38) -#define I2C_SYSTEST (I2C1BASE + 0x3C) -#define I2C_BUFSTAT (I2C1BASE + 0x40) -#define I2C_OA1 (I2C1BASE + 0x44) -#define I2C_OA2 (I2C1BASE + 0x48) -#define I2C_OA3 (I2C1BASE + 0x4C) -#define I2C_ACTOA (I2C1BASE + 0x50) -#define I2C_SBLOCK (I2C1BASE + 0x54) +//#define I2C_OA0 (I2C1BASE + 0x28) +#define I2C_SA (I2C1BASE + 0xAC) +#define I2C_PSC (I2C1BASE + 0xB0) +#define I2C_SCLL (I2C1BASE + 0xB4) +#define I2C_SCLH (I2C1BASE + 0xB8) +#define I2C_SYSTEST (I2C1BASE + 0xBC) +#define I2C_BUFSTAT (I2C1BASE + 0xC0) +#define I2C_OA1 (I2C1BASE + 0xC4) +#define I2C_OA2 (I2C1BASE + 0xC8) +#define I2C_OA3 (I2C1BASE + 0xCC) +#define I2C_ACTOA (I2C1BASE + 0xD0) +#define I2C_SBLOCK (I2C1BASE + 0xD4) #endif //__OMAP4430I2C_H__ diff --git a/Omap44xxPkg/Include/TWL6030.h b/Omap44xxPkg/Include/TWL6030.h index cd708d979..8126ca7c2 100644 --- a/Omap44xxPkg/Include/TWL6030.h +++ b/Omap44xxPkg/Include/TWL6030.h @@ -12,8 +12,8 @@ **/ -#ifndef __TPS65950_H__ -#define __TPS65950_H__ +#ifndef __TWL6030_H__ +#define __TWL6030_H__ #define EXTERNAL_DEVICE_REGISTER_TO_SLAVE_ADDRESS(x) (((x) >> 8) & 0xFF) #define EXTERNAL_DEVICE_REGISTER_TO_REGISTER(x) ((x) & 0xFF) @@ -27,21 +27,19 @@ #define I2C_ADDR_GRP_ID5 0x12 // MMC definitions. -#define VMMC1_DEV_GRP 0x82 -#define DEV_GRP_P1 BIT5 +#define VMMC_CFG_GRP 0x98 +#define DEV_GRP_APP BIT0 -#define VMMC1_DEDICATED_REG 0x85 -#define VSEL_1_85V 0x0 -#define VSEL_2_85V 0x1 -#define VSEL_3_00V 0x2 -#define VSEL_3_15V 0x3 +#define VMMC_CFG_STATE 0x9A +#define VMMC_CFG_STATE_OFF 0xE0 +#define VMMC_CFG_STATE_ON 0xE1 -#define TPS65950_GPIO_CTRL 0xaa //I2C_ADDR_GRP_ID2 -#define CARD_DETECT_ENABLE (BIT2 | BIT0) // GPIO ON + GPIO CD1 enabled +#define VMMC_CFG_VOLTAGE 0x9B +#define VSEL_3_00V 0x15 - -#define GPIODATAIN1 0x98 //I2C_ADDR_GRP_ID2 -#define CARD_DETECT_BIT BIT0 +#define MMCCTRL 0xEE +#define CARD_DET_STS_MMC BIT0 +#define CARD_DET_CFG BIT3 // LEDEN register #define LEDEN 0xEE @@ -77,4 +75,4 @@ #define GPIODATADIR1 0x9B #define SETGPIODATAOUT1 0xA4 -#endif //__TPS65950_H__ +#endif //__TWL6030_H__ diff --git a/Omap44xxPkg/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h b/Omap44xxPkg/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h index 85364458e..721859724 100644 --- a/Omap44xxPkg/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h +++ b/Omap44xxPkg/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.h @@ -27,7 +27,7 @@ #include <Guid/GlobalVariable.h> #include <Omap4430/Omap4430.h> -#include <TPS65950.h> +#include <TWL6030.h> typedef struct { VENDOR_DEVICE_PATH Guid; diff --git a/Omap44xxPkg/Library/RealTimeClockLib/RealTimeClockLib.c b/Omap44xxPkg/Library/RealTimeClockLib/RealTimeClockLib.c index ba471380a..b215b5512 100644 --- a/Omap44xxPkg/Library/RealTimeClockLib/RealTimeClockLib.c +++ b/Omap44xxPkg/Library/RealTimeClockLib/RealTimeClockLib.c @@ -24,10 +24,10 @@ #include <Protocol/EmbeddedExternalDevice.h> #include <Omap4430/Omap4430.h> -#include <TPS65950.h> +#include <TWL6030.h> -EMBEDDED_EXTERNAL_DEVICE *gTPS65950; +EMBEDDED_EXTERNAL_DEVICE *gTWL6030; INT16 TimeZone = EFI_UNSPECIFIED_TIMEZONE; /** @@ -64,34 +64,34 @@ LibGetTime ( ZeroMem(Time, sizeof(EFI_TIME)); // Latch values - Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, RTC_CTRL_REG), 1, &Data); + Status = gTWL6030->Read (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, RTC_CTRL_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Data |= BIT6; - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, RTC_CTRL_REG), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, RTC_CTRL_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; // Read registers - Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, YEARS_REG), 1, &Data); + Status = gTWL6030->Read (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, YEARS_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Time->Year = 2000 + ((Data >> 4) & 0xF) * 10 + (Data & 0xF); - Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MONTHS_REG), 1, &Data); + Status = gTWL6030->Read (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MONTHS_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Time->Month = ((Data >> 4) & 0x1) * 10 + (Data & 0xF); - Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, DAYS_REG), 1, &Data); + Status = gTWL6030->Read (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, DAYS_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Time->Day = ((Data >> 4) & 0x3) * 10 + (Data & 0xF); - Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, HOURS_REG), 1, &Data); + Status = gTWL6030->Read (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, HOURS_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Time->Hour = ((Data >> 4) & 0x3) * 10 + (Data & 0xF); - Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MINUTES_REG), 1, &Data); + Status = gTWL6030->Read (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MINUTES_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Time->Minute = ((Data >> 4) & 0x7) * 10 + (Data & 0xF); - Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, SECONDS_REG), 1, &Data); + Status = gTWL6030->Read (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, SECONDS_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Time->Second = ((Data >> 4) & 0x7) * 10 + (Data & 0xF); @@ -153,27 +153,27 @@ LibSetTime ( OldTpl = gBS->RaiseTPL(TPL_NOTIFY); Data = Time->Year - 2000; - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, YEARS_REG), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, YEARS_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Data = ((Time->Month / 10) << 4) | (Time->Month % 10); - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MONTHS_REG), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MONTHS_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Data = ((Time->Day / 10) << 4) | (Time->Day % 10); - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, DAYS_REG), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, DAYS_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Data = ((Time->Hour / 10) << 4) | (Time->Hour % 10); - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, HOURS_REG), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, HOURS_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Data = ((Time->Minute / 10) << 4) | (Time->Minute % 10); - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MINUTES_REG), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MINUTES_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; Data = ((Time->Second / 10) << 4) | (Time->Second % 10); - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, SECONDS_REG), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, SECONDS_REG), 1, &Data); if (Status != EFI_SUCCESS) goto EXIT; TimeZone = Time->TimeZone; @@ -256,13 +256,13 @@ LibRtcInitialize ( EFI_TPL OldTpl; #endif - Status = gBS->LocateProtocol (&gEmbeddedExternalDeviceProtocolGuid, NULL, (VOID **)&gTPS65950); + Status = gBS->LocateProtocol (&gEmbeddedExternalDeviceProtocolGuid, NULL, (VOID **)&gTWL6030); ASSERT_EFI_ERROR(Status); #if 0 OldTpl = gBS->RaiseTPL(TPL_NOTIFY); Data = 1; - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, RTC_CTRL_REG), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, RTC_CTRL_REG), 1, &Data); ASSERT_EFI_ERROR(Status); gBS->RestoreTPL(OldTpl); #endif diff --git a/Omap44xxPkg/PciEmulation/PciEmulation.c b/Omap44xxPkg/PciEmulation/PciEmulation.c index 8565fd9c5..dc9109f91 100644 --- a/Omap44xxPkg/PciEmulation/PciEmulation.c +++ b/Omap44xxPkg/PciEmulation/PciEmulation.c @@ -14,7 +14,7 @@ #include "PciEmulation.h" -EMBEDDED_EXTERNAL_DEVICE *gTPS65950; +EMBEDDED_EXTERNAL_DEVICE *gTWL6030; #define HOST_CONTROLLER_OPERATION_REG_SIZE 0x44 @@ -81,27 +81,27 @@ ConfigureUSBHost ( MmioWrite32 (GPIO5_BASE + GPIO_SETDATAOUT, BIT19); // Get the Power IC protocol - Status = gBS->LocateProtocol (&gEmbeddedExternalDeviceProtocolGuid, NULL, (VOID **)&gTPS65950); + Status = gBS->LocateProtocol (&gEmbeddedExternalDeviceProtocolGuid, NULL, (VOID **)&gTWL6030); ASSERT_EFI_ERROR (Status); // Power the USB PHY Data = VAUX_DEV_GRP_P1; - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, VAUX2_DEV_GRP), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, VAUX2_DEV_GRP), 1, &Data); ASSERT_EFI_ERROR(Status); Data = VAUX_DEDICATED_18V; - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, VAUX2_DEDICATED), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, VAUX2_DEDICATED), 1, &Data); ASSERT_EFI_ERROR (Status); // Enable power to the USB hub - Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID3, LEDEN), 1, &Data); + Status = gTWL6030->Read (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID3, LEDEN), 1, &Data); ASSERT_EFI_ERROR (Status); // LEDAON controls the power to the USB host, PWM is disabled Data &= ~LEDAPWM; Data |= LEDAON; - Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID3, LEDEN), 1, &Data); + Status = gTWL6030->Write (gTWL6030, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID3, LEDEN), 1, &Data); ASSERT_EFI_ERROR (Status); } diff --git a/Omap44xxPkg/PciEmulation/PciEmulation.h b/Omap44xxPkg/PciEmulation/PciEmulation.h index a0ccb1e1d..ba719e1db 100644 --- a/Omap44xxPkg/PciEmulation/PciEmulation.h +++ b/Omap44xxPkg/PciEmulation/PciEmulation.h @@ -17,7 +17,7 @@ #include <PiDxe.h> -#include <TPS65950.h> +#include <TWL6030.h> #include <Library/BaseLib.h> #include <Library/BaseMemoryLib.h> diff --git a/Omap44xxPkg/TWL6030Dxe/TWL6030.c b/Omap44xxPkg/TWL6030Dxe/TWL6030.c index 6b76da507..f4027bfa8 100644 --- a/Omap44xxPkg/TWL6030Dxe/TWL6030.c +++ b/Omap44xxPkg/TWL6030Dxe/TWL6030.c @@ -14,7 +14,7 @@ #include <Uefi.h> -#include <TPS65950.h> +#include <TWL6030.h> #include <Library/BaseMemoryLib.h> #include <Library/DebugLib.h> @@ -101,7 +101,7 @@ EMBEDDED_EXTERNAL_DEVICE ExternalDevice = { }; EFI_STATUS -TPS65950Initialize ( +TWL6030Initialize ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) diff --git a/Omap44xxPkg/TWL6030Dxe/TWL6030.inf b/Omap44xxPkg/TWL6030Dxe/TWL6030.inf index 36e124179..a539bfaae 100644 --- a/Omap44xxPkg/TWL6030Dxe/TWL6030.inf +++ b/Omap44xxPkg/TWL6030Dxe/TWL6030.inf @@ -13,16 +13,16 @@ [Defines] INF_VERSION = 0x00010005 - BASE_NAME = TPS65950 + BASE_NAME = TWL6030 FILE_GUID = 71fe861a-5450-48b6-bfb0-b93522616f99 MODULE_TYPE = DXE_DRIVER VERSION_STRING = 1.0 - ENTRY_POINT = TPS65950Initialize + ENTRY_POINT = TWL6030Initialize [Sources.common] - TPS65950.c + TWL6030.c [Packages] MdePkg/MdePkg.dec |