ctr_mcu/trunk/vreg_twl.h
N2232 611a0cbf84 戻り値の型が誤っているのを修正 動いているコードを触るなと言う格言もあるが…
無名な列挙型、一通り名前を付けた。VSのメンバ表示の可読を上げたいため。今更。
LED お知らせLED、リピート設定でなくても最終フレームフラグを立てる
(パターンを差し替えるときに使ってほしかったが意味ないかもとのこと)
WiFiLEDの点滅は現状(TWL同等)で良いらしい。
スリープ中だが、masterBrightnessで下げた状態にしてもらうことになりそう。
 うっすらついてるかわかるか程度なら消してしまえばいいのに...
充電停止・再開温度を変更。ただし評価を待ってまたいじられるかもしれない
 電池残量割り込みのデバッグコードを入れた。
 加速度センサが動いていると、強制オフに時間が掛かるとの事でシステムチックタイマを数えてみたが、ジッタは増えるものの、問題無いような気がするし、手元で試しても同じ気がする。条件を確認しよう
 

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@189 013db118-44a6-b54f-8bf7-843cb86687b1
2010-06-03 08:39:03 +00:00

132 lines
3.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef __vreg_twl__
#define __vreg_twl__
/* ========================================================================= */
extern u8 vreg_twl[];
/*
* 外から見たときのマイコンレジスタアドレス。
* 拡張性などを考えて飛び飛びにしてある。
*/
/*
* 割り込み要因フラグは
* MSB:外部電源供給有り/なし変化 (未実装)
* 6:Volキー操作変更に限らず。MAX時にでも。
* 5:電池電圧 少 検出
* 4: 僅
* 3:電源スイッチ 押され検出
* 2:(未設定)
* 1:電源スイッチ OFF 時間押され検出
* LSB: リセット
*/
enum REG_TWL_ADRS
{ // 未定義アドレスへ書き込んだ際は無視
REG_TWL_ADRS_VER_INFO = 0x00,
REG_TWL_ADRS_PMIC_INFO,
REG_TWL_ADRS_BATT_INFO,
REG_TWL_ADRS_IRQ = 0x10,
REG_TWL_ADRS_COMMAND,
REG_TWL_ADRS_MODE,
REG_TWL_ADRS_POWER_INFO = 0x20,
REG_TWL_ADRS_POWER_SAVE,
REG_TWL_ADRS_WIFI = 0x30,
REG_TWL_ADRS_CAM,
REG_TWL_ADRS_VOL = 0x40,
REG_TWL_ADRS_BL,
REG_TWL_ADRS_CODEC_MIC_GAIN = 0x50,
REG_TWL_ADRS_ADC_CALIB = 0x60,
REG_TWL_ADRS_ADC_CALIB_STATUS,
REG_TWL_ADRS_ADC_CALIB_VALUE,
REG_TWL_ADRS_POWER_LED,
REG_TWL_ADRS_TEMP0 = 0x70,
REG_TWL_ADRS_TEMP1,
REG_TWL_ADRS_TEMP2,
REG_TWL_ADRS_TEMP3,
REG_TWL_ADRS_TEMP4,
REG_TWL_ADRS_TEMP5,
REG_TWL_ADRS_TEMP6,
REG_TWL_ADRS_TEMP7,
REG_TWL_ADRS_TIME_PWSW_DELAY = 0x80,
REG_TWL_ADRS_TIME_PWSW_THRESHOLD
};
#define REG_TWL_ADRS_NON_EXIST 0xFF
/*
* マイコン内部でのレジスタの実装
* もちろんつめてある
*/
enum REG_TWL_ADRS_INT
{
REG_TWL_INT_ADRS_VER_INFO = 0x00,
// REG_TWL_INT_ADRS_PMIC_INFO,
// REG_TWL_INT_ADRS_BATT_INFO,
REG_TWL_INT_ADRS_IRQ, // 0x10,
REG_TWL_INT_ADRS_COMMAND,
REG_TWL_INT_ADRS_MODE,
REG_TWL_INT_ADRS_POWER_INFO, // 0x20,
// REG_TWL_INT_ADRS_POWER_SAVE,
// REG_TWL_INT_ADRS_WIFI, // 0x30,
REG_TWL_INT_ADRS_CAM,
REG_TWL_INT_ADRS_VOL, // 0x40,
// REG_TWL_INT_ADRS_BL,
// REG_TWL_INT_ADRS_CODEC_MIC_GAIN, // 0x50,
// REG_TWL_INT_ADRS_CODEC_MIC_GAIN_RELOAD,
// REG_TWL_INT_ADRS_ADC_CALIB, // 0x60,
// REG_TWL_INT_ADRS_ADC_CALIB_STATUS,
// REG_TWL_INT_ADRS_ADC_CALIB_VALUE,
// REG_TWL_INT_ADRS_POWER_LED,
REG_TWL_INT_ADRS_TEMP0, // 0x70 - 0x77
REG_TWL_INT_ADRS_TEMP1,
REG_TWL_INT_ADRS_TEMP2,
REG_TWL_INT_ADRS_TEMP3,
REG_TWL_INT_ADRS_TEMP4,
REG_TWL_INT_ADRS_TEMP5,
REG_TWL_INT_ADRS_TEMP6,
REG_TWL_INT_ADRS_TEMP7,
// REG_TWL_INT_ADRS_TIME_PWSW_DELAY,
// REG_TWL_INT_ADRS_TIME_PWSW_THRESHOLD
_REG_TWL_INT_ADRS_ENDMARK,
};
/* ========================================================================= */
#define is_TWL ( vregs[ REG_TWL_INT_ADRS_MODE ] & 0x01 )
#define with_NAND ( vregs[ REG_TWL_INT_ADRS_MODE ] & 0x02 )
#define volSteps32 ( vregs[ REG_TWL_INT_ADRS_MODE ] & 0x80 )
#define reg_wifi_led ( vregs[ REG_TWL_INT_ADRS_WIFI ] & 0x01 )
#define reg_wifi_led_blink ( vregs[ REG_TWL_INT_ADRS_WIFI ] & 0x02 )
#define REG_TWL_ADRS_MODE__VOL32 ( 1 << 7 )
typedef enum CAM_LED_TWL_MODE
{
TWL_CAMLED_OFF,
TWL_CAMLED_ON,
TWL_CAMLED_BLINK,
TWL_CAMLED_DEF_ON
}twl_camLed_mode;
/* ========================================================================= */
void vreg_twl_init( );
void vreg_twl_write( u8 adrs, u8 data );
u8 adrs_table_twl_ext2int( u8 img );
u8 vreg_twl_read( u8 phy_adrs );
extern task_status_immed command_from_twl( );
// 読んだらクリアなどの処理
#define vreg_twl_after_read( reg_adrs ); \
if( reg_adrs == REG_TWL_INT_ADRS_IRQ ) \
{ \
vreg_twl[ REG_TWL_INT_ADRS_IRQ ]= 0;\
}
#endif