mirror of
https://github.com/rvtr/twl_wrapsdk.git
synced 2025-06-18 14:25:43 -04:00
X3以降のマイコンへ対応。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@327 4ee2a332-4b2b-5046-8439-1ba90f034370
This commit is contained in:
parent
5c26b23b71
commit
772b56225b
@ -42,6 +42,13 @@ TWL_MEMSIZE ?= 8M
|
||||
TWL_CODEGEN ?= ARM
|
||||
TWL_PROC ?= ARM9
|
||||
|
||||
#
|
||||
# TS Board Version
|
||||
# TWL_TS_VERSION = [200/300/400]
|
||||
#
|
||||
TWL_TS_VERSION ?= 400
|
||||
TS_VERSION ?= $(if $(TWL_TS_VERSION),_TS$(TWL_TS_VERSION))
|
||||
|
||||
# replace NitroSDK
|
||||
NITRO_PLATFORM = TS
|
||||
NITRO_MEMSIZE = $(TWL_MEMSIZE)
|
||||
|
@ -32,7 +32,8 @@ SUBDIRS += \
|
||||
dsp \
|
||||
spi \
|
||||
el \
|
||||
mcu \
|
||||
|
||||
# mcu \
|
||||
|
||||
endif # TWL_PLATFORM != DSTEG
|
||||
|
||||
|
@ -18,7 +18,10 @@
|
||||
#define TWL_MCU_H_
|
||||
|
||||
#ifdef SDK_ARM7
|
||||
#include <twl/mcu/ARM7/mcu.h>
|
||||
#include <twl/mcu/ARM7/mcu_reg.h>
|
||||
#include <twl/mcu/ARM7/i2c.h>
|
||||
#include <twl/mcu/ARM7/control.h>
|
||||
#include <twl/mcu/ARM7/intr.h>
|
||||
#endif
|
||||
|
||||
/* TWL_MCU_H_ */
|
||||
|
652
include/twl/mcu/ARM7/control.h
Normal file
652
include/twl/mcu/ARM7/control.h
Normal file
@ -0,0 +1,652 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - mcu - include
|
||||
File: control.h
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Date:: 2008-03-06#$
|
||||
$Rev: 4551 $
|
||||
$Author: yutaka $
|
||||
*---------------------------------------------------------------------------*/
|
||||
#ifndef TWL_MCU_CONTROL_H_
|
||||
#define TWL_MCU_CONTROL_H_
|
||||
|
||||
#include <twl/mcu/ARM7/mcu_reg.h>
|
||||
#include <twl/mcu/ARM7/i2c.h>
|
||||
|
||||
/*
|
||||
MCUは、SDK_TS_VERSIONによらず 300 以降に対応します。
|
||||
SDK_TS_VERSION <= 200 の場合、以下のAPIに限り 200 互換となります。
|
||||
Supported: GetVersion, GetRevision, GetFreeRegister, SetFreeRegister
|
||||
*/
|
||||
#if SDK_TS_VERSION <= 200
|
||||
#define MCU_OLD_REG_TEMP_ADDR 0x18
|
||||
#endif
|
||||
|
||||
/*
|
||||
その他
|
||||
*/
|
||||
#define MCU_VERSION_MIN (2 << MCU_REG_VER_INFO_VERSION_SHIFT)
|
||||
|
||||
#define MCU_BL_BRIGHTNESS_MAX 4
|
||||
#define MCU_VOLUME_MAX 31
|
||||
#define MCU_FREE_REG_NUMBER_MAX (MCU_REG_TEMP_LAST_ADDR - MCU_REG_TEMP_ADDR)
|
||||
|
||||
/*
|
||||
alias
|
||||
*/
|
||||
#define MCU_GetHotBootFlag() (MCU_GetFreeRegister(0) & OS_MCU_RESET_VALUE_BUF_HOTBT_MASK ? TRUE : FALSE)
|
||||
#define MCU_SetHotBootFlag(hotboot) MCU_SetFreeRegister(0, (u8)(hotboot ? OS_MCU_RESET_VALUE_BUF_HOTBT_MASK : 0))
|
||||
|
||||
|
||||
#ifdef _cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MCU_SYSTEMMODE_NITRO = (0 << MCU_REG_MODE_SYSTEM_SHIFT),
|
||||
MCU_SYSTEMMODE_TWL = (1 << MCU_REG_MODE_SYSTEM_SHIFT)
|
||||
}
|
||||
MCUSystemMode;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MCU_CAMERA_LED_OFF = (0 << MCU_REG_CAMERA_LED_SHIFT),
|
||||
MCU_CAMERA_LED_ON = (1 << MCU_REG_CAMERA_LED_SHIFT),
|
||||
MCU_CAMERA_LED_BLINK = (2 << MCU_REG_CAMERA_LED_SHIFT),
|
||||
MCU_CAMERA_LED_RESERVED1 = (3 << MCU_REG_CAMERA_LED_SHIFT)
|
||||
}
|
||||
MCUCameraLed;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MCU_GPIO_DIR_OUTPUT = 0,
|
||||
MCU_GPIO_DIR_INPUT = 1
|
||||
}
|
||||
MCUGpioDir;
|
||||
|
||||
#ifdef SDK_ARM7
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetVersion
|
||||
|
||||
Description: get MCU version.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: MCU version (0-15)
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_GetVersion( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_VER_INFO_ADDR );
|
||||
if ( data < MCU_VERSION_MIN )
|
||||
{
|
||||
#if SDK_TS_VERSION <= 200
|
||||
OS_TWarning("MCU version is too old to support this library.");
|
||||
#else
|
||||
OS_TPanic("MCU version is too old to support this library.");
|
||||
#endif
|
||||
}
|
||||
return (u8)( ( data & MCU_REG_VER_INFO_VERSION_MASK ) >> MCU_REG_VER_INFO_VERSION_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetRevision
|
||||
|
||||
Description: get MCU revision.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: MCU revision (0-15)
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_GetRevision( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_VER_INFO_ADDR );
|
||||
if ( data < MCU_VERSION_MIN )
|
||||
{
|
||||
#if SDK_TS_VERSION <= 200
|
||||
OS_TWarning("MCU version is too old to support this library.");
|
||||
#else
|
||||
OS_TPanic("MCU version is too old to support this library.");
|
||||
#endif
|
||||
}
|
||||
return (u8)( ( data & MCU_REG_VER_INFO_REVISION_MASK ) >> MCU_REG_VER_INFO_REVISION_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetPmicManufacturer
|
||||
|
||||
Description: get PMIC manufacturer.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: manufacturer ID (0-7)
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_GetPmicManufacturer( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_PMIC_INFO_ADDR );
|
||||
return (u8)( ( data & MCU_REG_PMIC_INFO_MAKER_MASK ) >> MCU_REG_PMIC_INFO_MAKER_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetPmicVersion
|
||||
|
||||
Description: get PMIC version.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: MCU version (0-3)
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_GetPmicVersion( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_PMIC_INFO_ADDR );
|
||||
return (u8)( ( data & MCU_REG_VER_INFO_REVISION_MASK ) >> MCU_REG_VER_INFO_REVISION_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetBatteryManufacturer
|
||||
|
||||
Description: get battery manufacturer.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: manufacturer ID (0-7)
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_GetBatteryManufacturer( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_BATT_INFO_ADDR );
|
||||
return (u8)( ( data & MCU_REG_BATT_INFO_MAKER_MASK ) >> MCU_REG_BATT_INFO_MAKER_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_NotifyShutdown
|
||||
|
||||
Description: notify system is going to shutdown
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_NotifyShutdown( void )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_COMMAND_ADDR, MCU_REG_COMMAND_PWOFF_MASK );
|
||||
// return MCU_SetFlags( MCU_REG_COMMAND_ADDR, MCU_REG_COMMAND_PWOFF_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_HardwareReset
|
||||
|
||||
Description: execute hardware reset routine
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_HardwareReset( void )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_COMMAND_ADDR, MCU_REG_COMMAND_RESET_MASK );
|
||||
// return MCU_SetFlags( MCU_REG_COMMAND_ADDR, MCU_REG_COMMAND_RESET_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GoDsMode
|
||||
|
||||
Description: set system mode to MCU_SYSTEMMODE_NITRO in MCU.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_GoDsMode( void )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_MODE_ADDR, MCU_SYSTEMMODE_NITRO );
|
||||
// return MCU_SetParams( MCU_REG_MODE_ADDR, MCU_SYSTEMMODE_NITRO, MCU_REG_MODE_SYSTEM_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GoTwlMode
|
||||
|
||||
Description: set system mode to MCU_SYSTEMMODE_TWL in MCU.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_GoTwlMode( void )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_MODE_ADDR, MCU_SYSTEMMODE_TWL );
|
||||
// return MCU_SetParams( MCU_REG_MODE_ADDR, MCU_SYSTEMMODE_TWL, MCU_REG_MODE_SYSTEM_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_IsExternalDC
|
||||
|
||||
Description: check external DC ( AC adapter ) is plugged.
|
||||
NOTE: it's not meaning that power is supplied or not.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: TRUE if plugged.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_IsExternalDC( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_POWER_INFO_ADDR );
|
||||
return (BOOL)( (data & MCU_REG_POWER_INFO_EXTDC_MASK) >> MCU_REG_POWER_INFO_EXTDC_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_IsExtesionMode
|
||||
|
||||
Description: check extension mode is available.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: TRUE if extension mode is available.
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_IsExtesionMode( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_POWER_MODE_ADDR );
|
||||
return (BOOL)( (data & MCU_REG_POWER_MODE_EXT_MASK) >> MCU_REG_POWER_MODE_EXT_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetExtesionMode
|
||||
|
||||
Description: enable/disable extension mode.
|
||||
|
||||
Arguments: enabled enable/dislabe
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetExtesionMode( BOOL enabled )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_POWER_MODE_ADDR, (u8)(enabled ? MCU_REG_POWER_MODE_EXT_MASK : 0) );
|
||||
// return MCU_SetParams( MCU_REG_POWER_MODE_ADDR, (u8)(enabled ? MCU_REG_POWER_MODE_EXT_MASK : 0), MCU_REG_POWER_MODE_EXT_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetBatteryLevel
|
||||
|
||||
Description: get battery level
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: battery level
|
||||
|
||||
0(Empty) -0 % Red (blink)
|
||||
1(Low) 0-5 % Red (blink)
|
||||
3 1-12 % Red
|
||||
7 10-25 % Blue
|
||||
11 20-50 % Blue
|
||||
15 40-100 % Blue
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_GetBatteryLevel( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_POWER_INFO_ADDR );
|
||||
return (u8)( (data & MCU_REG_POWER_INFO_LEVEL_MASK) >> MCU_REG_POWER_INFO_LEVEL_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetWifiLedStatus
|
||||
|
||||
Description: get wifi LED status
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: TRUE is on
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_GetWifiLedStatus( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_WIFI_ADDR );
|
||||
return (BOOL)( ( data & MCU_REG_WIFI_LED_MASK ) >> MCU_REG_WIFI_LED_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetWifiLedStatus
|
||||
|
||||
Description: set wifi LED status
|
||||
|
||||
Arguments: enabled TRUE if enabled
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetWifiLedStatus( BOOL enabled )
|
||||
{
|
||||
return MCU_SetParams( MCU_REG_WIFI_ADDR, (u8)(enabled ? MCU_REG_WIFI_LED_MASK : 0), MCU_REG_WIFI_LED_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetWifiStatus
|
||||
|
||||
Description: whether wifi is enabled
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: TRUE means enabled, otherwise in hardware reset
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_GetWifiStatus( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_WIFI_ADDR );
|
||||
return (BOOL)( ( data & MCU_REG_WIFI_NRESET_MASK ) >> MCU_REG_WIFI_NRESET_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetWifiStatus
|
||||
|
||||
Description: set wifi to be enabled/disabled
|
||||
|
||||
Arguments: enabled TRUE if set enabled
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetWifiStatus( BOOL enabled )
|
||||
{
|
||||
return MCU_SetParams( MCU_REG_WIFI_ADDR, (u8)( enabled ? MCU_REG_WIFI_NRESET_MASK : 0), MCU_REG_WIFI_NRESET_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetCameraLedStatus
|
||||
|
||||
Description: get camera LED status
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: one of MCUCameraLed
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline MCUCameraLed MCU_GetCameraLedStatus( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_CAMERA_ADDR );
|
||||
return (MCUCameraLed)( ( data & MCU_REG_CAMERA_LED_MASK ) >> MCU_REG_CAMERA_LED_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetCameraLedStatus
|
||||
|
||||
Description: set camera LED status
|
||||
|
||||
Arguments: led one of MCUCameraLed
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetCameraLedStatus( MCUCameraLed led )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_CAMERA_ADDR, led );
|
||||
// return MCU_SetParams( MCU_REG_CAMERA_ADDR, led, MCU_REG_CAMERA_LED_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetGpioDirection
|
||||
|
||||
Description: get GPIO direction
|
||||
|
||||
Arguments: pin pin number (only 0 is suppined)
|
||||
|
||||
Returns: one of MCUGpioDir
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline MCUGpioDir MCU_GetGpioDirection( u8 pin )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_GPIO_DIR_ADDR );
|
||||
SDK_ASSERT( pin == 0 );
|
||||
return (MCUGpioDir)( ( data >> pin ) & 1 );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetGpioDirection
|
||||
|
||||
Description: set GPIO direction
|
||||
|
||||
Arguments: pin pin number (only 0 is suppined)
|
||||
dir one of MCUGpioDir
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetGpioDirection( u8 pin, MCUGpioDir dir )
|
||||
{
|
||||
SDK_ASSERT( pin == 0 );
|
||||
return MCU_SetParams( MCU_REG_GPIO_DIR_ADDR, (u8)( dir << pin ), (u8)( 1 << pin ) );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetGpioData
|
||||
|
||||
Description: get GPIO data
|
||||
|
||||
Arguments: pin pin number (only 0 is suppined)
|
||||
|
||||
Returns: 1 bit data
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_GetGpioData( u8 pin )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_GPIO_DATA_ADDR );
|
||||
SDK_ASSERT( pin == 0 );
|
||||
return (BOOL)( ( data >> pin ) & 1 );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetGpioData
|
||||
|
||||
Description: set GPIO data
|
||||
|
||||
Arguments: pin pin number (only 0 is suppined)
|
||||
data 0(FALSE) or 1(TRUE)
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetGpioData( u8 pin, BOOL data )
|
||||
{
|
||||
SDK_ASSERT( pin == 0 );
|
||||
return MCU_SetParams( MCU_REG_GPIO_DATA_ADDR, (u8)( (data & 1) << pin ), (u8)( 1 << pin ) );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetVolume
|
||||
|
||||
Description: get current volume.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: volume (0-31)
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_GetVolume( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_VOLUME_ADDR );
|
||||
return (u8)( ( data & MCU_REG_VOLUME_VOLUME_MASK ) >> MCU_REG_VOLUME_VOLUME_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetVolume
|
||||
|
||||
Description: set current volume.
|
||||
|
||||
Arguments: volume volume (0-31)
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetVolume( u8 volume )
|
||||
{
|
||||
if ( volume <= MCU_VOLUME_MAX )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_VOLUME_ADDR, (u8)( volume << MCU_REG_VOLUME_VOLUME_SHIFT ) );
|
||||
// return MCU_SetParams( MCU_REG_VOLUME_ADDR, (u8)( volume << MCU_REG_VOLUME_VOLUME_SHIFT ), MCU_REG_VOLUME_VOLUME_MASK );
|
||||
}
|
||||
return FALSE; // invalid parameters
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetBackLightBrightness
|
||||
|
||||
Description: get current back light brightness.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: brightness (0-MCU_BL_BRIGHTNESS_MAX)
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_GetBackLightBrightness( void )
|
||||
{
|
||||
u8 data = MCU_ReadRegister( MCU_REG_BL_ADDR );
|
||||
return (u8)( ( data & MCU_REG_BL_BRIGHTNESS_MASK ) >> MCU_REG_BL_BRIGHTNESS_SHIFT );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetBackLightBrightness
|
||||
|
||||
Description: set current back light brightness.
|
||||
|
||||
Arguments: brightness back light brightness (0-MCU_BL_BRIGHTNESS_MAX)
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetBackLightBrightness( u8 brightness )
|
||||
{
|
||||
if ( brightness <= MCU_BL_BRIGHTNESS_MAX )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_BL_ADDR, (u8)( brightness << MCU_REG_BL_BRIGHTNESS_SHIFT ) );
|
||||
// return MCU_SetParams( MCU_REG_BL_ADDR, (u8)( brightness << MCU_REG_BL_BRIGHTNESS_SHIFT ), MCU_REG_BL_BRIGHTNESS_MASK );
|
||||
}
|
||||
return FALSE; // invalid parameter
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetFreeRegister
|
||||
|
||||
Description: get free register.
|
||||
|
||||
Arguments: number register number (0-7)
|
||||
|
||||
Returns: data
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_GetFreeRegister( u8 number )
|
||||
{
|
||||
if ( number <= MCU_FREE_REG_NUMBER_MAX )
|
||||
{
|
||||
#if SDK_TS_VERSION <= 200
|
||||
u8 data = MCU_ReadRegister( (u8)( MCU_OLD_REG_TEMP_ADDR + number ) );
|
||||
if ( data == 0x5a )
|
||||
{
|
||||
return MCU_ReadRegister( (u8)( MCU_REG_TEMP_ADDR + number ) );
|
||||
}
|
||||
return data;
|
||||
#else
|
||||
return MCU_ReadRegister( (u8)( MCU_REG_TEMP_ADDR + number ) );
|
||||
#endif
|
||||
}
|
||||
return 0x00; // invalid parameter
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetFreeRegister
|
||||
|
||||
Description: set free register.
|
||||
|
||||
Arguments: number register number (0-7)
|
||||
data buffer to store data
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetFreeRegister( u8 number, u8 value )
|
||||
{
|
||||
if ( number <= MCU_FREE_REG_NUMBER_MAX )
|
||||
{
|
||||
#if SDK_TS_VERSION <= 200
|
||||
BOOL result = MCU_WriteRegister( (u8)( MCU_OLD_REG_TEMP_ADDR + number ), value );
|
||||
return MCU_WriteRegister( (u8)( MCU_REG_TEMP_ADDR + number ), value ) & result;
|
||||
#else
|
||||
return MCU_WriteRegister( (u8)( MCU_REG_TEMP_ADDR + number ), value );
|
||||
#endif
|
||||
}
|
||||
return FALSE; // invalid parameter
|
||||
}
|
||||
|
||||
/*
|
||||
工場の生産工程でのみ使われる予定のAPI (TODO: ARM9から呼び出せる必要あり)
|
||||
*/
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_StartBatteryCalibration
|
||||
|
||||
Description: execute battery calibration ( un-official command )
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_StartBatteryCalibration( void )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_BATT_CALIB_ADDR, MCU_REG_BATT_CALIB_MODE_MASK );
|
||||
// return MCU_SetFlags( MCU_REG_BATT_CALIB_ADDR, MCU_REG_BATT_CALIB_MODE_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetBatteryCalibrationStatus
|
||||
|
||||
Description: whether battery calibration was done ( un-official command )
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: 1 if done, 2 or 3 if error
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_IsBatteryCalibrationDone( void )
|
||||
{
|
||||
return MCU_ReadRegister( MCU_REG_CALIB_STATUS_ADDR );
|
||||
}
|
||||
|
||||
/*
|
||||
すぐに削除される予定のAPI
|
||||
*/
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetPowerSwitchThreshould
|
||||
|
||||
Description: set reset/no sense threshould time ( temporary command )
|
||||
|
||||
Arguments: ticks time parameter
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetPowerSwitchThreshould( u8 ticks )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_RESET_TIME_ADDR, (u8)(ticks << MCU_REG_RESET_TIME_VALUE_SHIFT) );
|
||||
// return MCU_SetParams( MCU_REG_RESET_TIME_ADDR, (u8)(ticks << MCU_REG_RESET_TIME_VALUE_SHIFT), MCU_REG_RESET_TIME_VALUE_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetPowerOffThreshould
|
||||
|
||||
Description: set reset/power off threshould time ( temporary command )
|
||||
|
||||
Arguments: ticks time parameter
|
||||
|
||||
Returns: TRUE if success
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCU_SetPowerOffThreshould( u8 ticks )
|
||||
{
|
||||
return MCU_WriteRegister( MCU_REG_PWOFF_TIME_ADDR, (u8)(ticks << MCU_REG_PWOFF_TIME_VALUE_SHIFT) );
|
||||
// return MCU_SetParams( MCU_REG_PWOFF_TIME_ADDR, (u8)(ticks << MCU_REG_PWOFF_TIME_VALUE_SHIFT), MCU_REG_PWOFF_TIME_VALUE_MASK );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_MilliSecondsToThreshouldTicks
|
||||
|
||||
Description: calculate threshould value from msec
|
||||
|
||||
Arguments: msec msec value
|
||||
|
||||
Returns: threshould ticks
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline u8 MCU_MilliSecondsToThreshouldTicks( u32 msec )
|
||||
{
|
||||
SDK_ASSERT( msec > 20 );
|
||||
return (u8)((msec - 20) / 5);
|
||||
}
|
||||
|
||||
#endif // SDK_ARM7
|
||||
|
||||
#ifdef _cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* TWL_MCU_CONTROL_H_ */
|
@ -1,5 +1,5 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - libraries - mcu
|
||||
Project: TwlSDK - mcu - include
|
||||
File: i2c.h
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
@ -10,13 +10,15 @@
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Log: $
|
||||
$NoKeywords: $
|
||||
$Date:: $
|
||||
$Rev$
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
#ifndef TWL_MCU_I2C_COMMON_H_
|
||||
#define TWL_MCU_I2C_COMMON_H_
|
||||
#ifndef TWL_MCU_I2C_H_
|
||||
#define TWL_MCU_I2C_H_
|
||||
|
||||
#ifdef SDK_ARM7
|
||||
|
||||
#include <twl/types.h>
|
||||
#include <twl/i2c/ARM7/i2c.h>
|
||||
|
||||
#ifdef _cplusplus
|
||||
@ -63,46 +65,6 @@ static inline u8 MCU_ReadRegister( u8 reg )
|
||||
return I2C_ReadRegister( I2C_SLAVE_MICRO_CONTROLLER, reg );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCUi_WriteRegisters
|
||||
|
||||
Description: set value to decive registers through I2C.
|
||||
|
||||
Arguments: reg : decive register
|
||||
bufp : data array to be written
|
||||
size : data size
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCUi_WriteRegisters( u8 reg, const u8 *bufp, size_t size )
|
||||
{
|
||||
return I2Ci_WriteRegisters( I2C_SLAVE_MICRO_CONTROLLER, reg, bufp, size );
|
||||
}
|
||||
static inline BOOL MCU_WriteRegisters( u8 reg, const u8 *bufp, size_t size )
|
||||
{
|
||||
return I2C_WriteRegisters( I2C_SLAVE_MICRO_CONTROLLER, reg, bufp, size );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCUi_ReadRegisters
|
||||
|
||||
Description: get value from decive registers through I2C.
|
||||
|
||||
Arguments: reg : decive register
|
||||
bufp : data array to be read
|
||||
size : data size
|
||||
|
||||
Returns: value which is read from specified decive register
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCUi_ReadRegisters( u8 reg, u8 *bufp, size_t size )
|
||||
{
|
||||
return I2Ci_ReadRegisters( I2C_SLAVE_MICRO_CONTROLLER, reg, bufp, size );
|
||||
}
|
||||
static inline BOOL MCU_ReadRegisters( u8 reg, u8 *bufp, size_t size )
|
||||
{
|
||||
return I2C_ReadRegisters( I2C_SLAVE_MICRO_CONTROLLER, reg, bufp, size );
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
// I2C BIT CONTROL
|
||||
//================================================================================
|
||||
@ -119,11 +81,20 @@ static inline BOOL MCU_ReadRegisters( u8 reg, u8 *bufp, size_t size )
|
||||
*---------------------------------------------------------------------------*/
|
||||
static inline BOOL MCUi_SetParams( u8 reg, u8 setBits, u8 maskBits )
|
||||
{
|
||||
return I2Ci_SetParams( I2C_SLAVE_MICRO_CONTROLLER, reg, setBits, maskBits );
|
||||
u8 tmp;
|
||||
tmp = MCU_ReadRegister( reg );
|
||||
tmp &= ~maskBits;
|
||||
setBits &= maskBits;
|
||||
tmp |= setBits;
|
||||
return MCU_WriteRegister( reg, tmp );
|
||||
}
|
||||
static inline BOOL MCU_SetParams( u8 reg, u8 setBits, u8 maskBits )
|
||||
{
|
||||
return I2C_SetParams( I2C_SLAVE_MICRO_CONTROLLER, reg, setBits, maskBits );
|
||||
BOOL result;
|
||||
(void)I2C_Lock();
|
||||
result = MCUi_SetParams( reg, setBits, maskBits );
|
||||
(void)I2C_Unlock();
|
||||
return result;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
@ -168,5 +139,7 @@ static inline BOOL MCU_ClearFlags( u8 reg, u8 clrBits )
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
/* TWL_MCU_I2C_COMMON_H_ */
|
||||
#endif // SDK_ARM7
|
||||
|
||||
/* TWL_MCU_I2C_H_ */
|
||||
#endif
|
||||
|
172
include/twl/mcu/ARM7/intr.h
Normal file
172
include/twl/mcu/ARM7/intr.h
Normal file
@ -0,0 +1,172 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - mcu - include
|
||||
File: intr.h
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Date:: 2008-02-15#$
|
||||
$Rev: 4187 $
|
||||
$Author: yutaka $
|
||||
*---------------------------------------------------------------------------*/
|
||||
#ifndef TWL_MCU_INTR_H_
|
||||
#define TWL_MCU_INTR_H_
|
||||
|
||||
#include <twl/types.h>
|
||||
#include <twl/mcu/ARM7/mcu_reg.h>
|
||||
|
||||
/*
|
||||
CPU割り込み
|
||||
*/
|
||||
#define MCU_IE OS_IE_GPIO33_2
|
||||
|
||||
/*
|
||||
MCU割り込みビット数
|
||||
*/
|
||||
#define MCU_IRQ_TABLE_MAX 8
|
||||
|
||||
/*
|
||||
MCU割り込み種別
|
||||
*/
|
||||
// 外部DCプラグの挿抜が発生した (アプリケーションユーティリティ)
|
||||
//#define MCU_IE_EXTERNAL_DC_TRIGGER MCU_REG_IRQ_EXTDC_MASK
|
||||
// バッテリ切れ最終予告水域になった (アプリケーションユーティリティ)
|
||||
#define MCU_IE_BATTERY_LOW_TRIGGER MCU_REG_IRQ_BATTLOW_MASK
|
||||
// バッテリ切れ水域になった (電源OFFと同様の処理開始)
|
||||
#define MCU_IE_BATTERY_EMPTY_TRIGGER MCU_REG_IRQ_BATTEMP_MASK
|
||||
// 電源ボタンが不感時間を超えて押された (リセット/電源OFFのどちらかの発生が確定)
|
||||
#define MCU_IE_POWER_SWITCH_PRESSED MCU_REG_IRQ_PWSW_MASK
|
||||
// 電源ボタンによる電源OFF指示
|
||||
#define MCU_IE_POWER_OFF_REQUEST MCU_REG_IRQ_PWOFF_MASK
|
||||
// 電源ボタンによるリセット指示
|
||||
#define MCU_IE_RESET_REQUEST MCU_REG_IRQ_RESET_MASK
|
||||
|
||||
/*
|
||||
ブロック設定
|
||||
*/
|
||||
#define MCU_BLOCK OS_MESSAGE_BLOCK
|
||||
#define MCU_NOBLOCK OS_MESSAGE_NOBLOCK
|
||||
|
||||
#ifdef _cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
割り込みハンドラ
|
||||
*/
|
||||
typedef void (*MCUIrqFunction)(void);
|
||||
|
||||
/*
|
||||
電源ボタンの状態
|
||||
*/
|
||||
typedef enum MCUPwswStatus
|
||||
{
|
||||
MCU_PWSW_UNKNOWN, // 押されていない
|
||||
MCU_PWSW_IN_PROGRESS, // 押しているが未確定
|
||||
MCU_PWSW_RESET, // リセットと確定した
|
||||
MCU_PWSW_POWER_OFF, // 電源OFFと確定した
|
||||
|
||||
MCU_PWSW_MAX
|
||||
}
|
||||
MCUPwswStatus;
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_InitIrq
|
||||
|
||||
Description: MCUの割り込みを利用可能とする
|
||||
|
||||
Arguments: priority 割り込み処理スレッドの優先度(初回のみ有効)
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
void MCU_InitIrq(u32 priority);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_SetIrqFunction
|
||||
|
||||
Description: MCU割り込みハンドラの登録
|
||||
|
||||
Arguments: intrBit 設定するMCU割り込み要因
|
||||
function 割り込みハンドラ
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void MCU_SetIrqFunction(u8 intrBit, MCUIrqFunction function);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetIrqFunction
|
||||
|
||||
Description: MCU割り込みハンドラの取得
|
||||
|
||||
Arguments: intrBit 設定するMCU割り込み要因
|
||||
|
||||
Returns: 設定済みの割り込みハンドラ
|
||||
*---------------------------------------------------------------------------*/
|
||||
MCUIrqFunction MCU_GetIrqFunction(u8 intrBit);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_CallIrqFunction
|
||||
|
||||
Description: 引数の割り込みに対応したコールバックを呼び出します。
|
||||
PwswStatusは更新しません。
|
||||
|
||||
Arguments: intrBit 割り込みハンドラを呼び出したい
|
||||
MCU割り込み要因のビットOR
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void MCU_CallIrqFunction(u8 intrBit);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_CheckIrq
|
||||
|
||||
Description: MCUの割り込みが発生していないか確認する。
|
||||
MCU_REG_IRQ_ADDRを直接Readする代わりにこれを使用してください。
|
||||
遅延して割り込みハンドラを呼び出したい場合は、その
|
||||
タイミングでMCU_CallIrqFunction()を呼び出してください。
|
||||
|
||||
Arguments: callHandler 登録済みハンドラを呼び出すかどうか
|
||||
|
||||
Returns: 発生していた割り込みに対応するMCU_IE_*のビットOR
|
||||
*---------------------------------------------------------------------------*/
|
||||
u8 MCU_CheckIrq(BOOL callHandler);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_GetPwswStatus
|
||||
|
||||
Description: MCUの電源ボタンの状態を取得する
|
||||
ブロックする場合、IN_PROGRESSであれば、RESETまたはPOWER_OFFに
|
||||
なるまでOS_Sleep(1)する
|
||||
|
||||
Arguments: block 確定していないなら確定するまで待つかどうか
|
||||
MCU_BLOCK: 待つ
|
||||
MCU_NOBLOCK: 待たない
|
||||
|
||||
Returns: one of MCUPwswStatus
|
||||
*---------------------------------------------------------------------------*/
|
||||
MCUPwswStatus MCU_GetPwswStatus(s32 block);
|
||||
|
||||
#if 0
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: MCU_ResetPwswStatus
|
||||
|
||||
Description: MCUの電源ボタンの状態をクリアする (なかったことにする)
|
||||
MCU_PWSW_IN_PROGRESSの場合は無視される
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void MCU_ResetPwswStatus(void);
|
||||
#endif
|
||||
|
||||
#ifdef _cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif // TWL_MCU_INTR_H_
|
@ -17,76 +17,182 @@
|
||||
#ifndef TWL_MCU_MCU_REG_H_
|
||||
#define TWL_MCU_MCU_REG_H_
|
||||
|
||||
#define MCU_REG_INFO_ADDR 0x00
|
||||
#define MCU_REG_IRQ_ADDR 0x01
|
||||
#define MCU_REG_MODE_ADDR 0x02
|
||||
#define MCU_REG_VER_INFO_ADDR 0x00
|
||||
#define MCU_REG_PMIC_INFO_ADDR 0x01
|
||||
#define MCU_REG_BATT_INFO_ADDR 0x02
|
||||
|
||||
#define MCU_REG_WIFILED_ADDR 0x10
|
||||
#define MCU_REG_CAMLED_ADDR 0x11
|
||||
#define MCU_REG_CARDLED_1_ADDR 0x12
|
||||
#define MCU_REG_CARDLED_2_ADDR 0x13
|
||||
#define MCU_REG_IRQ_ADDR 0x10
|
||||
#define MCU_REG_COMMAND_ADDR 0x11
|
||||
#define MCU_REG_MODE_ADDR 0x12
|
||||
|
||||
#define MCU_REG_TEMP_ADDR 0x18
|
||||
#define MCU_REG_TEMP_LAST_ADDR 0x1f
|
||||
#define MCU_REG_POWER_INFO_ADDR 0x20
|
||||
#define MCU_REG_POWER_MODE_ADDR 0x21
|
||||
|
||||
#define MCU_REG_VOLUME_ADDR 0x20
|
||||
#define MCU_REG_WIFI_ADDR 0x30
|
||||
#define MCU_REG_CAMERA_ADDR 0x31
|
||||
#define MCU_REG_GPIO_DIR_ADDR 0x32
|
||||
#define MCU_REG_GPIO_DATA_ADDR 0x33
|
||||
|
||||
/* MCU_REG_INFO */
|
||||
#define MCU_REG_VOLUME_ADDR 0x40
|
||||
#define MCU_REG_BL_ADDR 0x41
|
||||
|
||||
#define MCU_REG_INFO_VERSION_SHIFT 4
|
||||
#define MCU_REG_INFO_VERSION_SIZE 4
|
||||
#define MCU_REG_INFO_VERSION_MASK 0xf0
|
||||
#define MCU_REG_BATT_CALIB_ADDR 0x60
|
||||
#define MCU_REG_CALIB_STATUS_ADDR 0x61
|
||||
|
||||
#define MCU_REG_INFO_REVISION_SHIFT 0
|
||||
#define MCU_REG_INFO_REVISION_SIZE 4
|
||||
#define MCU_REG_INFO_REVISION_MASK 0x0f
|
||||
#define MCU_REG_TEMP_ADDR 0x70
|
||||
#define MCU_REG_TEMP_LAST_ADDR 0x77
|
||||
|
||||
#define MCU_REG_RESET_TIME_ADDR 0x80 // temporary
|
||||
#define MCU_REG_PWOFF_TIME_ADDR 0x81 // temporary
|
||||
|
||||
/* MCU_REG_VER_INFO */
|
||||
|
||||
#define MCU_REG_VER_INFO_VERSION_SHIFT 4
|
||||
#define MCU_REG_VER_INFO_VERSION_SIZE 4
|
||||
#define MCU_REG_VER_INFO_VERSION_MASK 0xf0
|
||||
|
||||
#define MCU_REG_VER_INFO_REVISION_SHIFT 0
|
||||
#define MCU_REG_VER_INFO_REVISION_SIZE 4
|
||||
#define MCU_REG_VER_INFO_REVISION_MASK 0x0f
|
||||
|
||||
/* MCU_REG_PMIC_INFO */
|
||||
|
||||
#define MCU_REG_PMIC_INFO_MAKER_SHIFT 4
|
||||
#define MCU_REG_PMIC_INFO_MAKER_SIZE 3
|
||||
#define MCU_REG_PMIC_INFO_MAKER_MASK 0x70
|
||||
|
||||
#define MCU_REG_PMIC_INFO_VERSION_SHIFT 0
|
||||
#define MCU_REG_PMIC_INFO_VERSION_SIZE 2
|
||||
#define MCU_REG_PMIC_INFO_VERSION_MASK 0x03
|
||||
|
||||
/* MCU_REG_BATT_INFO */
|
||||
|
||||
#define MCU_REG_BATT_INFO_MAKER_SHIFT 4
|
||||
#define MCU_REG_BATT_INFO_MAKER_SIZE 3
|
||||
#define MCU_REG_BATT_INFO_MAKER_MASK 0x70
|
||||
|
||||
/* MCU_REG_IRQ */
|
||||
|
||||
#define MCU_REG_IRQ_EXTDC_SHIFT 7 // not worked
|
||||
#define MCU_REG_IRQ_EXTDC_SIZE 1 // not worked
|
||||
#define MCU_REG_IRQ_EXTDC_MASK 0x80 // not worked
|
||||
|
||||
#define MCU_REG_IRQ_BATTLOW_SHIFT 5
|
||||
#define MCU_REG_IRQ_BATTLOW_SIZE 1
|
||||
#define MCU_REG_IRQ_BATTLOW_MASK 0x20
|
||||
|
||||
#define MCU_REG_IRQ_BATTEMP_SHIFT 4
|
||||
#define MCU_REG_IRQ_BATTEMP_SIZE 1
|
||||
#define MCU_REG_IRQ_BATTEMP_MASK 0x10
|
||||
|
||||
#define MCU_REG_IRQ_PWSW_SHIFT 3
|
||||
#define MCU_REG_IRQ_PWSW_SIZE 1
|
||||
#define MCU_REG_IRQ_PWSW_MASK 0x08
|
||||
|
||||
#define MCU_REG_IRQ_PWOFF_SHIFT 1
|
||||
#define MCU_REG_IRQ_PWOFF_SIZE 1
|
||||
#define MCU_REG_IRQ_PWOFF_MASK 0x02
|
||||
|
||||
#define MCU_REG_IRQ_RESET_SHIFT 0
|
||||
#define MCU_REG_IRQ_RESET_SIZE 1
|
||||
#define MCU_REG_IRQ_RESET_MASK 0x01
|
||||
|
||||
/* MCU_REG_COMMAND */
|
||||
|
||||
#define MCU_REG_COMMAND_PWOFF_SHIFT 1 // not worked but using to notify to MCU
|
||||
#define MCU_REG_COMMAND_PWOFF_SIZE 1 // not worked but using to notify to MCU
|
||||
#define MCU_REG_COMMAND_PWOFF_MASK 0x02 // not worked but using to notify to MCU
|
||||
|
||||
#define MCU_REG_COMMAND_RESET_SHIFT 0
|
||||
#define MCU_REG_COMMAND_RESET_SIZE 1
|
||||
#define MCU_REG_COMMAND_RESET_MASK 0x01
|
||||
|
||||
/* MCU_REG_MODE */
|
||||
|
||||
#define MCU_REG_MODE_SYSTEM_SHIFT 0
|
||||
#define MCU_REG_MODE_SYSTEM_SIZE 2
|
||||
#define MCU_REG_MODE_SYSTEM_MASK 0x03
|
||||
|
||||
/* MCU_REG_WIFILED */
|
||||
/* MCU_REG_POWER_INFO */
|
||||
|
||||
#define MCU_REG_WIFILED_SHIFT 0
|
||||
#define MCU_REG_WIFILED_SIZE 1
|
||||
#define MCU_REG_WIFILED_MASK 0x01
|
||||
#define MCU_REG_POWER_INFO_EXTDC_SHIFT 7
|
||||
#define MCU_REG_POWER_INFO_EXTDC_SIZE 1
|
||||
#define MCU_REG_POWER_INFO_EXTDC_MASK 0x80
|
||||
|
||||
/* MCU_REG_CAMLED */
|
||||
#define MCU_REG_POWER_INFO_LEVEL_SHIFT 0
|
||||
#define MCU_REG_POWER_INFO_LEVEL_SIZE 4
|
||||
#define MCU_REG_POWER_INFO_LEVEL_MASK 0x0f
|
||||
|
||||
#define MCU_REG_CAMLED_PATTERN_SHIFT 4
|
||||
#define MCU_REG_CAMLED_PATTERN_SIZE 4
|
||||
#define MCU_REG_CAMLED_PATTERN_MASK 0xf0
|
||||
/* MCU_REG_POWER_MODE */
|
||||
|
||||
#define MCU_REG_CAMLED_PARAM_SHIFT 0
|
||||
#define MCU_REG_CAMLED_PARAM_SIZE 4
|
||||
#define MCU_REG_CAMLED_PARAM_MASK 0x0f
|
||||
#define MCU_REG_POWER_MODE_EXT_SHIFT 0
|
||||
#define MCU_REG_POWER_MODE_EXT_SIZE 1
|
||||
#define MCU_REG_POWER_MODE_EXT_MASK 0x01
|
||||
|
||||
/* MCU_REG_CARDLED_1, MCU_REG_CARDLED_2 */
|
||||
/* MCU_REG_WIFI */
|
||||
|
||||
#define MCU_REG_CARDLED_SHIFT 0
|
||||
#define MCU_REG_CARDLED_SIZE 2
|
||||
#define MCU_REG_CARDLED_MASK 0x03
|
||||
#define MCU_REG_WIFI_NRESET_SHIFT 4
|
||||
#define MCU_REG_WIFI_NRESET_SIZE 1
|
||||
#define MCU_REG_WIFI_NRESET_MASK 0x10
|
||||
|
||||
#define MCU_REG_CARDLED_1_SHIFT MCU_REG_CARDLED_SHIFT
|
||||
#define MCU_REG_CARDLED_1_SIZE MCU_REG_CARDLED_SIZE
|
||||
#define MCU_REG_CARDLED_1_MASK MCU_REG_CARDLED_MASK
|
||||
#define MCU_REG_WIFI_LED_SHIFT 0
|
||||
#define MCU_REG_WIFI_LED_SIZE 1
|
||||
#define MCU_REG_WIFI_LED_MASK 0x01
|
||||
|
||||
#define MCU_REG_CARDLED_2_SHIFT MCU_REG_CARDLED_SHIFT
|
||||
#define MCU_REG_CARDLED_2_SIZE MCU_REG_CARDLED_SIZE
|
||||
#define MCU_REG_CARDLED_2_MASK MCU_REG_CARDLED_MASK
|
||||
/* MCU_REG_CAMERA */
|
||||
|
||||
/* MCU_REG_VOL */
|
||||
#define MCU_REG_CAMERA_LED_SHIFT 0
|
||||
#define MCU_REG_CAMERA_LED_SIZE 2
|
||||
#define MCU_REG_CAMERA_LED_MASK 0x03
|
||||
|
||||
#define MCU_REG_VOLUME_SHIFT 0
|
||||
#define MCU_REG_VOLUME_SIZE 5
|
||||
#define MCU_REG_VOLUME_MASK 0x1f
|
||||
/* MCU_REG_GPIO_DIR */
|
||||
|
||||
#define MCU_REG_GPIO_DIR_PIN0_SHIFT 0
|
||||
#define MCU_REG_GPIO_DIR_PIN0_SIZE 1
|
||||
#define MCU_REG_GPIO_DIR_PIN0_MASK 0x01
|
||||
|
||||
/* MCU_REG_GPIO_DATA */
|
||||
|
||||
#define MCU_REG_GPIO_DATA_PORT0_SHIFT 0
|
||||
#define MCU_REG_GPIO_DATA_PORT0_SIZE 1
|
||||
#define MCU_REG_GPIO_DATA_PORT0_MASK 0x01
|
||||
|
||||
/* MCU_REG_VOLUME */
|
||||
|
||||
#define MCU_REG_VOLUME_VOLUME_SHIFT 0
|
||||
#define MCU_REG_VOLUME_VOLUME_SIZE 5
|
||||
#define MCU_REG_VOLUME_VOLUME_MASK 0x1f
|
||||
|
||||
/* MCU_REG_BL */
|
||||
|
||||
#define MCU_REG_BL_BRIGHTNESS_SHIFT 0
|
||||
#define MCU_REG_BL_BRIGHTNESS_SIZE 3
|
||||
#define MCU_REG_BL_BRIGHTNESS_MASK 0x07
|
||||
|
||||
/* MCU_REG_BATT_CALIB */
|
||||
|
||||
#define MCU_REG_BATT_CALIB_MODE_SHIFT 0
|
||||
#define MCU_REG_BATT_CALIB_MODE_SIZE 1
|
||||
#define MCU_REG_BATT_CALIB_MODE_MASK 0x01
|
||||
|
||||
/* MCU_REG_CALIB_STATUS */
|
||||
|
||||
#define MCU_REG_CALIB_STATUS_STATUS_SHIFT 0
|
||||
#define MCU_REG_CALIB_STATUS_STATUS_SIZE 2
|
||||
#define MCU_REG_CALIB_STATUS_STATUS_MASK 0x03
|
||||
|
||||
/* MCU_REG_TEMP */
|
||||
|
||||
/* MCU_REG_RESET_TIME */
|
||||
|
||||
#define MCU_REG_RESET_TIME_VALUE_SHIFT 0
|
||||
#define MCU_REG_RESET_TIME_VALUE_SIZE 8
|
||||
#define MCU_REG_RESET_TIME_VALUE_MASK 0xff
|
||||
|
||||
/* MCU_REG_PWOFF_TIME */
|
||||
|
||||
#define MCU_REG_PWOFF_TIME_VALUE_SHIFT 0
|
||||
#define MCU_REG_PWOFF_TIME_VALUE_SIZE 8
|
||||
#define MCU_REG_PWOFF_TIME_VALUE_MASK 0xff
|
||||
|
||||
#endif /* TWL_MCU_MCU_REG_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user