1364 lines
47 KiB
C
1364 lines
47 KiB
C
/*
|
|
* Copyright (C) 2012 Apple Inc. All rights reserved.
|
|
*
|
|
* This document is the property of Apple Inc.
|
|
* It is considered confidential and proprietary.
|
|
*
|
|
* This document may not be reproduced or transmitted in any form,
|
|
* in whole or in part, without the express written permission of
|
|
* Apple Inc.
|
|
*/
|
|
|
|
#ifndef __DIALOG_D2255_H
|
|
#define __DIALOG_D2255_H
|
|
|
|
#define PMU_HAS_SWI 0
|
|
#define PMU_HAS_DWI 0
|
|
#define PMU_HAS_SPI 1
|
|
// TODO: use single register alias (and a value alias) for HAS_SWI,HAS_DWI,HAS_SPI
|
|
#define PMU_HAS_LCM_LDO 0
|
|
#define PMU_HAS_BIST_ADC 0
|
|
#define PMU_HAS_CHG_ABCC_FLAG 0
|
|
#define PMU_HAS_VIB 0
|
|
#define PMU_HAS_RAM 1
|
|
#define PMU_HAS_WLED 0
|
|
#define PMU_HAS_32K_RTC 1
|
|
// TODO: enable accumulators
|
|
#define PMU_HAS_ACCUMULATORS 0
|
|
#define PMU_HAS_GPIO_CONF 1
|
|
#define PMU_HAS_SYS 1
|
|
#define PMU_HAS_CHARGER 0
|
|
#define PMU_HAS_PERF_STATES 1
|
|
#define PMU_HAS_VSEL_LOCK 1
|
|
#define PMU_DRV_NEW_DRIVER 1
|
|
#define PMU_HAS_SCRATCH 1
|
|
|
|
enum {
|
|
kDIALOG_ADDR_R = 0xe9,
|
|
kDIALOG_ADDR_W = 0xe8,
|
|
kDIALOG_REG_BYTES = 2,
|
|
};
|
|
|
|
enum {
|
|
kDIALOG_FAULTLOG_COUNT = 15, // kD2255_V_FAULTLOG_COUNT
|
|
kDIALOG_EVENT_COUNT = 25, // kD2255_V_EVENT_COUNT
|
|
kDIALOG_STATUS_COUNT = 25, // kD2255_V_STATUS_COUNT
|
|
kDIALOG_CHIPID_COUNT = 10, // SYSCTL_MASK_REV_CODE:0x0200 -> SYSCTL_DEVICE_ID7:0x020a
|
|
kDIALOG_GPIO_COUNT = 21, // IO_GPIO1_CONF1/2:0x0900,0x0901 -> IO_GPIO21_CONF1/2:0x0938,0x0939
|
|
};
|
|
|
|
#include "dCommon.h"
|
|
|
|
enum {
|
|
// ---------------------------------
|
|
// Faultlog (virtual)
|
|
// ---------------------------------
|
|
kDIALOG_FAULT_LOG_A = 0x0100,
|
|
// ...
|
|
// kDIALOG_FAULT_LOG_O
|
|
|
|
// ---------------------------------
|
|
// Event, Status ,IRQ Mask (Virtual)
|
|
// ---------------------------------
|
|
|
|
kD2255_V_EVENT_A = 0x0140,
|
|
kD2255_V_EVENT_B = 0x0141,
|
|
kD2255_V_EVENT_C = 0x0142,
|
|
kD2255_V_EVENT_D = 0x0143,
|
|
kD2255_V_EVENT_E = 0x0144,
|
|
kD2255_V_EVENT_F = 0x0145,
|
|
kD2255_V_EVENT_G = 0x0146,
|
|
kD2255_V_EVENT_H = 0x0147,
|
|
kD2255_V_EVENT_I = 0x0148,
|
|
kD2255_V_EVENT_J = 0x0149,
|
|
kD2255_V_EVENT_K = 0x014a,
|
|
kD2255_V_EVENT_L = 0x014b,
|
|
kD2255_V_EVENT_M = 0x014c,
|
|
kD2255_V_EVENT_N = 0x014d,
|
|
kD2255_V_EVENT_O = 0x014e,
|
|
kD2255_V_EVENT_P = 0x014f,
|
|
kD2255_V_EVENT_Q = 0x0150,
|
|
kD2255_V_EVENT_R = 0x0151,
|
|
kD2255_V_EVENT_S = 0x0152,
|
|
kD2255_V_EVENT_T = 0x0153,
|
|
kD2255_V_EVENT_U = 0x0154,
|
|
kD2255_V_EVENT_V = 0x0155,
|
|
kD2255_V_EVENT_W = 0x0156,
|
|
kD2255_V_EVENT_X = 0x0157,
|
|
kD2255_V_EVENT_Y = 0x0158,
|
|
|
|
kD2255_V_STATUS_A = 0x0180,
|
|
// .... V_STATUS_Y
|
|
kD2255_V_IRQ_MASK_A = 0x01c0,
|
|
// .... V_IRQ_MASK_Y
|
|
|
|
kD2255_V_FAULTLOG_COUNT = 15,
|
|
kD2255_V_EVENT_COUNT = 25,
|
|
kD2255_V_STATUS_COUNT = 25,
|
|
|
|
kDIALOG_EVENT_A = kD2255_V_EVENT_A,
|
|
kDIALOG_STATUS_A = kD2255_V_STATUS_A,
|
|
kDIALOG_IRQ_MASK_A = kD2255_V_IRQ_MASK_A,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// Chip Identification
|
|
// ---------------------------------
|
|
enum {
|
|
kDIALOG_MASK_REV_CODE = 0x0200,
|
|
kDIALOG_TRIM_REL_CODE = 0x0201,
|
|
kDIALOG_PLATFORM_ID = 0x0202,
|
|
kDIALOG_DEVICE_ID1 = 0x0204,
|
|
kDIALOG_DEVICE_ID2 = 0x0205,
|
|
kDIALOG_DEVICE_ID3 = 0x0206,
|
|
kDIALOG_DEVICE_ID4 = 0x0207,
|
|
kDIALOG_DEVICE_ID5 = 0x0208,
|
|
kDIALOG_DEVICE_ID6 = 0x0209,
|
|
kDIALOG_DEVICE_ID7 = 0x020a,
|
|
|
|
kDIALOG_CHIP_ID = kDIALOG_MASK_REV_CODE,
|
|
};
|
|
// ---------------------------------
|
|
// System Control And Status
|
|
// ---------------------------------
|
|
enum {
|
|
kD2255_APP_TMUX = 0x0212,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// System Configuration
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kD2255_SYSCTL_PRE_UVLO_CTRL = 0x0268,
|
|
kD2255_SYSCTL_PRE_UVLO_SET_MASK = 0xf0,
|
|
kD2255_SYSCTL_PRE_UVLO_SET_SHIFT = 4,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// Faultlog
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kD2255_FAULT_LOG1 = 0x02c0,
|
|
kD2255_FAULT_LOG2 = 0x02c1,
|
|
|
|
kDIALOG_FAULT_LOG = kD2255_FAULT_LOG1,
|
|
kDIALOG_FAULT_LOG2 = kD2255_FAULT_LOG2,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// Events. Status and IRQ Control
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kD2255_SYSCTL_EVENT = 0x02cf,
|
|
kD2255_SYSCTL_STATUS = 0x02d0,
|
|
kD2255_SYSCTL_IRQ_MASK = 0x02d1,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// Power Supply Control
|
|
// Active,Standby,Hibernate are now encoded here, need TestAccess
|
|
// ---------------------------------
|
|
enum {
|
|
kD2255_PWRONOFF_BUCK0_EN = 0x0300,
|
|
kD2255_PWRONOFF_BUCK1_EN = 0x0301,
|
|
kD2255_PWRONOFF_BUCK2_EN = 0x0302,
|
|
kD2255_PWRONOFF_BUCK3_EN = 0x0303,
|
|
kD2255_PWRONOFF_BUCK4_EN = 0x0304,
|
|
kD2255_PWRONOFF_BUCK5_EN = 0x0305,
|
|
kD2255_PWRONOFF_BUCK6_EN = 0x0306,
|
|
kD2255_PWRONOFF_BUCK7_EN = 0x0307,
|
|
kD2255_PWRONOFF_BUCK8_EN = 0x0308,
|
|
kD2255_PWRONOFF_LDO1_EN = 0x0309,
|
|
kD2255_PWRONOFF_LDO2_EN = 0x030a,
|
|
kD2255_PWRONOFF_LDO3_EN = 0x030b,
|
|
kD2255_PWRONOFF_LDO4_EN = 0x030c,
|
|
kD2255_PWRONOFF_LDO5_EN = 0x030d,
|
|
kD2255_PWRONOFF_LDO6_EN = 0x030e,
|
|
kD2255_PWRONOFF_LDO7_EN = 0x030f,
|
|
kD2255_PWRONOFF_LDO8_EN = 0x0310,
|
|
kD2255_PWRONOFF_LDO9_EN = 0x0311,
|
|
kD2255_PWRONOFF_LDO10_EN = 0x0312,
|
|
kD2255_PWRONOFF_LDO11_EN = 0x0313,
|
|
kD2255_PWRONOFF_LDO13_EN = 0x0314,
|
|
kD2255_PWRONOFF_LDO14_EN = 0x0315,
|
|
kD2255_PWRONOFF_LDO15_EN = 0x0316,
|
|
kD2255_PWRONOFF_CP_EN = 0x0317,
|
|
kD2255_PWRONOFF_BUCK3_SW1_EN = 0x0318,
|
|
kD2255_PWRONOFF_BUCK3_SW2_EN = 0x0319,
|
|
kD2255_PWRONOFF_BUCK3_SW3_EN = 0x031a,
|
|
kD2255_PWRONOFF_BUCK4_SW1_EN = 0x031b,
|
|
kD2255_PWRONOFF_GPIO_32K_EN = 0x031c,
|
|
kD2255_PWRONOFF_OUT_32K_EN = 0x031d,
|
|
kD2255_PWRONOFF_SLEEP_32K_EN = 0x031e,
|
|
kD2255_PWRONOFF_NRESET_EN = 0x031f,
|
|
kD2255_PWRONOFF_SYS_ALIVE_EN = 0x0320,
|
|
kD2255_PWRONOFF_PRE_UVLO_EN = 0x0321,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// Main FSM, MFSM Events
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kD2255_MFSM_CTRL = 0x0400,
|
|
kD2255_ACT_TO_SLEEP3_DLY = 0x0401,
|
|
kD2255_ACT_TO_OFF_DLY = 0x0402,
|
|
kD2255_OFF_TIMER_DLY = 0x0403,
|
|
kD2255_SLEEP3_TIMER_DLY = 0x0404,
|
|
kD2255_MFSM_CONF1 = 0x0460,
|
|
|
|
|
|
kD2255_MFSM_CTRL_PERF_FLOOR_OFF = (0<<2),
|
|
kD2255_MFSM_CTRL_PERF_FLOOR_SLEEP3 = (1<<2),
|
|
kD2255_MFSM_CTRL_PERF_FLOOR_SLEEP2 = (2<<2),
|
|
kD2255_MFSM_CTRL_PERF_FLOOR_ACTIVE = (3<<2),
|
|
kD2255_MFSM_CTRL_FORCE_SLEEP3 = (1<<1),
|
|
kD2255_MFSM_CTRL_FORCE_OFF = (1<<0),
|
|
|
|
kDIALOG_SYS_CONTROL_PERF_FLOOR_OFF = kD2255_MFSM_CTRL_PERF_FLOOR_OFF,
|
|
kDIALOG_SYS_CONTROL_PERF_FLOOR_SLEEP3 = kD2255_MFSM_CTRL_PERF_FLOOR_SLEEP3,
|
|
kDIALOG_SYS_CONTROL_PERF_FLOOR_SLEEP2 = kD2255_MFSM_CTRL_PERF_FLOOR_SLEEP2,
|
|
kDIALOG_SYS_CONTROL_PERF_FLOOR_ACTIVE = kD2255_MFSM_CTRL_PERF_FLOOR_ACTIVE,
|
|
kDIALOG_SYS_CONTROL_PERF_FLOOR_MASK = (0x3<<2),
|
|
|
|
kDIALOG_SYS_CONTROL_HIBERNATE = kD2255_MFSM_CTRL_FORCE_SLEEP3,
|
|
kDIALOG_SYS_CONTROL_STANDBY = kD2255_MFSM_CTRL_FORCE_OFF,
|
|
// TODO: verify this
|
|
kDIALOG_SYS_CONTROL_HIBERNATE_ALWAYS = kDIALOG_SYS_CONTROL_HIBERNATE,
|
|
|
|
kDIALOG_SYS_CONTROL = kD2255_MFSM_CTRL,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// RTC Calendar and Clock, Events
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kDIALOG_RTC_CONTROL = 0x0500,
|
|
kDIALOG_RTC_TIMEZONE = 0x0501,
|
|
kDIALOG_RTC_SUB_SECOND_A = 0x0502,
|
|
kDIALOG_RTC_SUB_SECOND_B = 0x0503,
|
|
kDIALOG_RTC_SECOND_A = 0x0504,
|
|
kDIALOG_RTC_SECOND_B = 0x0505,
|
|
kDIALOG_RTC_SECOND_C = 0x0506,
|
|
kDIALOG_RTC_SECOND_D = 0x0507,
|
|
kDIALOG_RTC_ALARM_A = 0x0508,
|
|
kDIALOG_RTC_ALARM_B = 0x0509,
|
|
kDIALOG_RTC_ALARM_C = 0x050a,
|
|
kDIALOG_RTC_ALARM_D = 0x050b,
|
|
|
|
// Events. Status. Mask in Virtual
|
|
// kD2255_RTC_EVENT = 0x05c0,
|
|
// kD2255_RTC_STATUS = 0x05c1,
|
|
// kD2255_RTC_IRQ_MASK = 0x05c2,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// SPI Interface
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kD2255_SPI_CTRL = 0x0600, // global enable
|
|
kD2255_EN_CMD0 = 0x0601, // buck#_spi_en
|
|
kD2255_EN_CMD1 = 0x0602, // Antigua130: BUCK8 [0]
|
|
kD2255_EN_CMD3 = 0x0604, // buck#_spi_dis_master
|
|
kD2255_EN_CMD4 = 0x0605, // Antigua130: BUCK8 [0]
|
|
kD2255_SPI_CONFIG = 0x0660,
|
|
|
|
// set when PMU_HAS_SPI
|
|
kDIALOG_SPI_CONTROL = kD2255_SPI_CTRL,
|
|
kDIALOG_SPI_CONTROL_SPI_EN = 1,
|
|
|
|
// Events. Status. Mask in Virtual
|
|
};
|
|
|
|
// ---------------------------------
|
|
// Clock Generation
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kD2255_SYS_CTRL_CONF0 = 0x0700,
|
|
kD2255_SYS_CTRL_CONF1 = 0x0760,
|
|
kD2255_RTC_CTRL0 = 0x0761,
|
|
kD2255_RTC_CTRL1 = 0x0762,
|
|
kD2255_RTC_CTRL2 = 0x0763,
|
|
kD2255_OSC_CTRL0 = 0x0764,
|
|
kD2255_INT_OSC_TRIM = 0x0765, // Antigua130: INT_OSC_TRIM[5:0]
|
|
kD2255_CLK_REQ_FRC = 0x0766,
|
|
kD2255_BG_CTRL = 0x0767,
|
|
|
|
kD2255_CKLGEN_EVENT = 0x07c0,
|
|
kD2255_CKLGEN_STATUS = 0x07c1,
|
|
kD2255_CKLGEN_IRQ_MASK = 0x07c2,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// Misc
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kD2255_HIB_SW_CTRL = 0x0860, // Antigua130: SEL_2V4[2]
|
|
};
|
|
|
|
// ---------------------------------
|
|
// GPIO configuration
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kD2255_GPIO1_CONF1 = 0x0900,
|
|
kD2255_GPIO1_CONF2 = 0x0901,
|
|
kD2255_GPIO2_CONF1,
|
|
kD2255_GPIO2_CONF2,
|
|
kD2255_GPIO3_CONF1,
|
|
kD2255_GPIO3_CONF2,
|
|
kD2255_GPIO4_CONF1,
|
|
kD2255_GPIO4_CONF2,
|
|
kD2255_GPIO5_CONF1,
|
|
kD2255_GPIO5_CONF2,
|
|
kD2255_GPIO6_CONF1,
|
|
kD2255_GPIO6_CONF2,
|
|
kD2255_GPIO7_CONF1,
|
|
kD2255_GPIO7_CONF2,
|
|
kD2255_GPIO8_CONF1,
|
|
kD2255_GPIO8_CONF2,
|
|
kD2255_GPIO9_CONF1,
|
|
kD2255_GPIO9_CONF2,
|
|
kD2255_GPIO10_CONF1,
|
|
kD2255_GPIO10_CONF2,
|
|
kD2255_GPIO11_CONF1,
|
|
kD2255_GPIO11_CONF2,
|
|
kD2255_GPIO12_CONF1,
|
|
kD2255_GPIO12_CONF2,
|
|
kD2255_GPIO13_CONF1,
|
|
kD2255_GPIO13_CONF2,
|
|
kD2255_GPIO14_CONF1,
|
|
kD2255_GPIO14_CONF2,
|
|
kD2255_GPIO15_CONF1,
|
|
kD2255_GPIO15_CONF2,
|
|
kD2255_GPIO16_CONF1,
|
|
kD2255_GPIO16_CONF2,
|
|
kD2255_GPIO17_CONF1,
|
|
kD2255_GPIO17_CONF2,
|
|
kD2255_GPIO18_CONF1_SLP1 = 0x0922,
|
|
kD2255_GPIO18_CONF1_SLP2,
|
|
kD2255_GPIO18_CONF1_SLP3,
|
|
kD2255_GPIO18_CONF1_OFF,
|
|
kD2255_GPIO18_CONF1,
|
|
kD2255_GPIO18_CONF2,
|
|
kD2255_GPIO19_CONF1_SLP1 = 0x0928,
|
|
kD2255_GPIO19_CONF1_SLP2,
|
|
kD2255_GPIO19_CONF1_SLP3,
|
|
kD2255_GPIO19_CONF1_OFF,
|
|
kD2255_GPIO19_CONF1,
|
|
kD2255_GPIO19_CONF2,
|
|
kD2255_GPIO20_CONF1_SLP1 = 0x092e,
|
|
kD2255_GPIO20_CONF1_SLP2,
|
|
kD2255_GPIO20_CONF1_SLP3,
|
|
kD2255_GPIO20_CONF1_OFF,
|
|
kD2255_GPIO20_CONF1,
|
|
kD2255_GPIO20_CONF2,
|
|
kD2255_GPIO21_CONF1_SLP1 = 0x0934,
|
|
kD2255_GPIO21_CONF1_SLP2,
|
|
kD2255_GPIO21_CONF1_SLP3,
|
|
kD2255_GPIO21_CONF1_OFF,
|
|
kD2255_GPIO21_CONF1,
|
|
kD2255_GPIO21_CONF2,
|
|
kDIALOG_SYS_GPIO_REG_START = kD2255_GPIO1_CONF1,
|
|
|
|
// until GPIO21_CONF1, GPIO21_CONF2 ... kDIALOG_GPIO_COUNT gpios
|
|
|
|
kD2255_OUT_32K = 0x093a,
|
|
kD2255_SLEEP_32K = 0x093b,
|
|
kD2255_ACTIVE_RDY = 0x093c,
|
|
kD2255_SLEEP1_RDY = 0x093d,
|
|
|
|
// GPI Control
|
|
kD2255_BUTTON1_CONF = 0x0960,
|
|
kD2255_BUTTON2_CONF = 0x0961,
|
|
kD2255_BUTTON3_CONF = 0x0962,
|
|
kD2255_BUTTON4_CONF = 0x0963,
|
|
kD2255_BUTTON_DBL = 0x0964,
|
|
kD2255_BUTTON_WAKE = 0x0965,
|
|
|
|
kD2255_RESET_IN1_CONF1 = 0x0966,
|
|
kD2255_RESET_IN1_CONF2 = 0x0967,
|
|
kD2255_RESET_IN2_CONF1 = 0x0968,
|
|
kD2255_RESET_IN2_CONF2 = 0x0969,
|
|
kD2255_RESET_IN3_CONF1 = 0x096a,
|
|
kD2255_RESET_IN3_CONF2 = 0x096b,
|
|
|
|
kDIALOG_BUTTON_DBL = kD2255_BUTTON_DBL,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// Event,Status,IRQ Control
|
|
// ---------------------------------
|
|
enum {
|
|
kD2255_IO_EVENT_A = 0x09c0,
|
|
kD2255_IO_EVENT_B = 0x09c1,
|
|
kD2255_IO_EVENT_C = 0x09c2,
|
|
kD2255_IO_EVENT_D = 0x09c3,
|
|
|
|
kD2255_IO_STATUS_A = 0x09c4,
|
|
kD2255_IO_STATUS_B = 0x09c5,
|
|
kD2255_IO_STATUS_C = 0x09c6,
|
|
kD2255_IO_STATUS_D = 0x09c7,
|
|
|
|
kD2255_IO_IRQ_MASK_A = 0x09c8,
|
|
kD2255_IO_IRQ_MASK_B = 0x09c9,
|
|
kD2255_IO_IRQ_MASK_C = 0x09ca,
|
|
kD2255_IO_IRQ_MASK_D = 0x09cb,
|
|
// Using the Virtual ones
|
|
// kDIALOG_EVENT_A = kD2255_IO_EVENT_A,
|
|
// kDIALOG_STATUS_A = kD2255_IO_STATUS_A,
|
|
// kDIALOG_IRQ_MASK_A = kD2255_IO_IRQ_MASK_A,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// Buck control
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kD2255_BUCK0_FAST_VSEL = 0x1000,
|
|
kD2255_BUCK0_VSEL = 0x1001,
|
|
kD2255_BUCK0_FAST_VSEL_EN,
|
|
kD2255_BUCK0_VSEL_ACTUAL,
|
|
kD2255_BUCK0_VSEL_LOCK = 0x1004,
|
|
kD2255_BUCK0_MINV,
|
|
kD2255_BUCK0_MAXV,
|
|
kD2255_BUCK0_OFS_V,
|
|
kD2255_BUCK0_MODE = 0x1008,
|
|
kD2255_BUCK0_DEBUG_OFS_V = 0x1060,
|
|
kD2255_BUCK0_FSM_TRIM0 = 0x1061,
|
|
kD2255_BUCK0_FSM_TRIM1,
|
|
kD2255_BUCK0_FSM_TRIM2,
|
|
kD2255_BUCK0_FSM_TRIM3,
|
|
kD2255_BUCK0_FSM_TRIM4,
|
|
kD2255_BUCK0_FSM_TRIM5,
|
|
kD2255_BUCK0_FSM_TRIM6 = 0x1067,
|
|
kD2255_BUCK0_FSM_TRIM7 = 0x1068,
|
|
kD2255_BUCK0_FSM_TRIM8,
|
|
kD2255_BUCK0_FSM_TRIM9,
|
|
kD2255_BUCK0_FSM_TRIM10,
|
|
kD2255_BUCK0_FSM_TRIM11,
|
|
kD2255_BUCK0_FSM_TRIM12,
|
|
kD2255_BUCK0_FSM_TRIM13 = 0x106E,
|
|
kD2255_BUCK0_CLK_TRIM0 = 0x106F,
|
|
kD2255_BUCK0_CLK_TRIM1,
|
|
kD2255_BUCK0_CLK_TRIM2,
|
|
kD2255_BUCK0_CLK_TRIM3,
|
|
kD2255_BUCK0_CALIB0 = 0x1073,
|
|
kD2255_BUCK0_CALIB1,
|
|
kD2255_BUCK0_CALIB2,
|
|
|
|
kD2255_BUCK1_FAST_VSEL = 0x1100,
|
|
kD2255_BUCK1_VSEL = 0x1101,
|
|
kD2255_BUCK1_VSEL_LOCK = 0x1104,
|
|
kD2255_BUCK1_FSM_TRIM6 = 0x1167,
|
|
kD2255_BUCK1_FSM_TRIM7 = 0x1168,
|
|
kD2255_BUCK1_CLK_TRIM1 = 0x1170,
|
|
kD2255_BUCK1_CLK_TRIM2 = 0x1171,
|
|
kD2255_BUCK1_CLK_TRIM3 = 0x1172,
|
|
kD2255_BUCK1_ANA_TRIM10 = 0x1181, // Antigua130 all diff
|
|
|
|
kD2255_BUCK2_FAST_VSEL = 0x1200,
|
|
kD2255_BUCK2_VSEL = 0x1201,
|
|
kD2255_BUCK2_VSEL_LOCK = 0x1204,
|
|
kD2255_BUCK2_MINV = 0x1205,
|
|
kD2255_BUCK2_FSM_TRIM6 = 0x1267,
|
|
kD2255_BUCK2_FSM_TRIM7 = 0x1268,
|
|
|
|
kD2255_BUCK3_FAST_VSEL = 0x1300,
|
|
kD2255_BUCK3_VSEL = 0x1301,
|
|
kD2255_BUCK3_VSEL_LOCK = 0x1304,
|
|
kD2255_BUCK3_FSM_TRIM6 = 0x1367,
|
|
kD2255_BUCK3_FSM_TRIM7 = 0x1368,
|
|
|
|
kD2255_BUCK4_FAST_VSEL = 0x1400,
|
|
kD2255_BUCK4_VSEL = 0x1401,
|
|
kD2255_BUCK4_VSEL_LOCK = 0x1404,
|
|
kD2255_BUCK4_FSM_TRIM6 = 0x1467,
|
|
kD2255_BUCK4_FSM_TRIM7 = 0x1468,
|
|
|
|
kD2255_BUCK5_FAST_VSEL = 0x1500,
|
|
kD2255_BUCK5_VSEL = 0x1501,
|
|
kD2255_BUCK5_VSEL_LOCK = 0x1504,
|
|
kD2255_BUCK5_FSM_TRIM6 = 0x1567,
|
|
kD2255_BUCK5_FSM_TRIM7 = 0x1568,
|
|
kD2255_BUCK5_ANA_TRIM14 = 0x1585, // Antigua130 ANA_TRIM14_SPARE[7:6]
|
|
|
|
kD2255_BUCK6_FAST_VSEL = 0x1600,
|
|
kD2255_BUCK6_VSEL = 0x1601,
|
|
kD2255_BUCK6_VSEL_LOCK = 0x1604,
|
|
kD2255_BUCK6_BYP1 = 0x1609,
|
|
kD2255_BUCK6_FSM_TRIM6 = 0x1667,
|
|
kD2255_BUCK6_FSM_TRIM7 = 0x1668,
|
|
|
|
kD2255_BUCK7_FAST_VSEL = 0x1700,
|
|
kD2255_BUCK7_VSEL = 0x1701,
|
|
kD2255_BUCK7_VSEL_LOCK = 0x1704,
|
|
kD2255_BUCK7_FSM_TRIM6 = 0x1767,
|
|
kD2255_BUCK7_FSM_TRIM7 = 0x1768,
|
|
|
|
kD2255_BUCK8_FAST_VSEL = 0x1800,
|
|
kD2255_BUCK8_VSEL = 0x1801,
|
|
kD2255_BUCK8_VSEL_LOCK = 0x1804,
|
|
kD2255_BUCK8_FSM_TRIM6 = 0x1867,
|
|
kD2255_BUCK8_FSM_TRIM7 = 0x1868,
|
|
|
|
kDIALOG_BUCK_VSEL_LOCK_EN = 1,
|
|
kDIALOG_BUCK_VSEL_LOCK_DIS = 0,
|
|
// how much to add to VSEL register base to get VSEL_OFFSET
|
|
kDIALOG_BUCK_VSEL_LOCK_OFFSET = (kD2255_BUCK0_VSEL_LOCK-kD2255_BUCK0_VSEL),
|
|
};
|
|
|
|
enum {
|
|
kD2255_LDO_RTC_TRIM = 0x2062, // Antigua130 VRTC_LDO_TRIM[5:0]
|
|
|
|
// LDO control...
|
|
kD2255_LDO1_VSEL = 0x2100,
|
|
kD2255_LDO1_VSEL_ACTUAL = 0x2101,
|
|
kD2255_LDO1_MINV = 0x2160,
|
|
kD2255_LDO1_MAXV = 0x2161,
|
|
kD2255_LDO1_UOV_LIM_EN_VOUT_PD= 0x2163, // Antigua130 LDO1_UV_LIM[3:2]
|
|
|
|
kD2255_LDO2_VSEL = 0x2200,
|
|
kD2255_LDO2_VSEL_ACTUAL = 0x2201,
|
|
kD2255_LDO2_BYPASS = 0x2202,
|
|
kD2255_LDO2_MINV = 0x2260,
|
|
kD2255_LDO2_MAXV = 0x2261,
|
|
kD2255_LDO2_TRIM = 0x2262,
|
|
kD2255_LDO2_UOV_LIM_EN_VOUT_PD= 0x2263, // Antigua130 LDO2_UV_LIM[3:2]
|
|
kD2255_LDO2_VSEL_BYPASS_TRIM= 0x2269,
|
|
|
|
kD2255_LDO3_VSEL = 0x2300,
|
|
kD2255_LDO3_VSEL_ACTUAL = 0x2301,
|
|
kD2255_LDO3_MINV = 0x2360,
|
|
kD2255_LDO3_MAXV = 0x2361,
|
|
kD2255_LDO3_UOV_LIM_EN_VOUT_PD= 0x2363, // Antigua130 LDO3_UV_LIM[3:2]
|
|
|
|
kD2255_LDO4_VSEL = 0x2400,
|
|
kD2255_LDO4_VSEL_ACTUAL = 0x2401,
|
|
kD2255_LDO4_MINV = 0x2460,
|
|
kD2255_LDO4_MAXV = 0x2461,
|
|
kD2255_LDO4_TRIM = 0x2462, // Antigua130 LDO4_ITEMP[7:5]
|
|
kD2255_LDO4_UOV_LIM_EN_VOUT_PD= 0x2463, // Antigua130 LDO4_UV_LIM[3:2]
|
|
|
|
kD2255_LDO5_VSEL = 0x2500,
|
|
kD2255_LDO5_VSEL_ACTUAL = 0x2501,
|
|
kD2255_LDO5_MINV = 0x2560,
|
|
kD2255_LDO5_MAXV = 0x2561,
|
|
kD2255_LDO5_UOV_LIM_EN_VOUT_PD= 0x2563, // Antigua130 LDO5_UV_LIM[3:2]
|
|
kD2255_LDO5_ILIMIT_STATE = 0x2565, // Antigua130 LDO_LDO5_ILIMIT_STATE[2:1] LDO5_ISTART_100MA[3]
|
|
// ..
|
|
|
|
kD2255_LDO6_VSEL = 0x2600,
|
|
kD2255_LDO6_VSEL_ACTUAL = 0x2601,
|
|
kD2255_LDO6_BYPASS = 0x2602,
|
|
kD2255_LDO6_MINV = 0x2660,
|
|
kD2255_LDO6_MAXV = 0x2661,
|
|
|
|
kD2255_LDO7_VSEL = 0x2700,
|
|
kD2255_LDO7_VSEL_ACTUAL = 0x2701,
|
|
kD2255_LDO7_MINV = 0x2760,
|
|
kD2255_LDO7_MAXV = 0x2761,
|
|
|
|
kD2255_LDO8_VSEL = 0x2800,
|
|
kD2255_LDO8_VSEL_ACTUAL = 0x2801,
|
|
kD2255_LDO8_MINV = 0x2860,
|
|
kD2255_LDO8_MAXV = 0x2861,
|
|
|
|
kD2255_LDO9_VSEL = 0x2900,
|
|
kD2255_LDO9_VSEL_ACTUAL = 0x2901,
|
|
kD2255_LDO9_MINV = 0x2960,
|
|
kD2255_LDO9_MAXV = 0x2961,
|
|
kD2255_LDO9_TRIM = 0x2962, // Antigua130 LDO9_DROPOUT_TRIM[7:5]
|
|
|
|
kD2255_LDO10_VSEL = 0x2A00,
|
|
kD2255_LDO10_VSEL_ACTUAL = 0x2A01,
|
|
kD2255_LDO10_MINV = 0x2A60,
|
|
kD2255_LDO10_MAXV = 0x2A61,
|
|
kD2255_LDO10_TRIM = 0x2A62,
|
|
|
|
kD2255_LDO11_VSEL = 0x2B00,
|
|
kD2255_LDO11_VSEL_ACTUAL = 0x2B01,
|
|
kD2255_LDO11_MINV = 0x2B60,
|
|
kD2255_LDO11_MAXV = 0x2B61,
|
|
kD2255_LDO11_TRIM = 0x2B62,
|
|
|
|
kD2255_LDO12_TRIM = 0x2C62,
|
|
|
|
kD2255_LDO13_VSEL = 0x2D00,
|
|
kD2255_LDO13_VSEL_ACTUAL = 0x2D01,
|
|
kD2255_LDO13_MINV = 0x2D60,
|
|
kD2255_LDO13_MAXV = 0x2D61,
|
|
kD2255_LDO13_TRIM = 0x2D62,
|
|
|
|
kD2255_LDO14_VSEL = 0x2E00,
|
|
kD2255_LDO14_VSEL_ACTUAL = 0x2E01,
|
|
kD2255_LDO14_MINV = 0x2E60,
|
|
kD2255_LDO14_MAXV = 0x2E61,
|
|
kD2255_LDO14_TRIM = 0x2E62,
|
|
|
|
kD2255_LDO15_VSEL = 0x2F00,
|
|
kD2255_LDO15_VSEL_ACTUAL = 0x2F01,
|
|
kD2255_LDO15_BYPASS = 0x2F02,
|
|
kD2255_LDO15_MINV = 0x2F60,
|
|
kD2255_LDO15_MAXV = 0x2F61,
|
|
kD2255_LDO15_TRIM = 0x2F62,
|
|
|
|
kD2255_LDO_EVENT = 0x3FC0,
|
|
kD2255_LDO_STATUS = 0x3FC1,
|
|
kD2255_LDO_IRQ_MASK = 0x3FC2,
|
|
|
|
kDIALOG_BYPASS_EN = 1,
|
|
kDIALOG_BYPASS_DIS = 0,
|
|
};
|
|
|
|
// ---------------------------------
|
|
// POWER ON/OFF
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
// Power Supply Control
|
|
kD2255_BUCK0_EN = 0x0300,
|
|
kD2255_BUCK1_EN = 0x0301,
|
|
kD2255_BUCK2_EN = 0x0302,
|
|
kD2255_BUCK3_EN = 0x0303,
|
|
kD2255_BUCK4_EN = 0x0304,
|
|
kD2255_BUCK5_EN = 0x0305,
|
|
kD2255_BUCK6_EN = 0x0306,
|
|
kD2255_BUCK7_EN = 0x0307,
|
|
kD2255_BUCK8_EN = 0x0308,
|
|
kD2255_LDO1_EN = 0x0309,
|
|
kD2255_LDO2_EN = 0x030a,
|
|
kD2255_LDO3_EN = 0x030b,
|
|
kD2255_LDO4_EN = 0x030c,
|
|
kD2255_LDO5_EN = 0x030d,
|
|
kD2255_LDO6_EN = 0x030e,
|
|
kD2255_LDO7_EN = 0x030f,
|
|
kD2255_LDO8_EN = 0x0310,
|
|
kD2255_LDO9_EN = 0x0311,
|
|
kD2255_LDO10_EN = 0x0312,
|
|
kD2255_LDO11_EN = 0x0313,
|
|
kD2255_LDO13_EN = 0x0314,
|
|
kD2255_LDO14_EN = 0x0315,
|
|
kD2255_LDO15_EN = 0x0316,
|
|
kD2255_CP_EN,
|
|
kD2255_BUCK3_SW1_EN = 0x0318,
|
|
kD2255_BUCK3_SW2_EN = 0x0319,
|
|
kD2255_BUCK3_SW3_EN = 0x031A,
|
|
kD2255_BUCK4_SW1_EN = 0x031B,
|
|
kD2255_GPIO32K_EN = 0x031C,
|
|
kD2255_OUT32K_EN = 0x031D,
|
|
kD2255_SLEEP32K_EN = 0x031E,
|
|
kD2255_NRESET_EN = 0x031F,
|
|
kD2255_SYSALIVE_EN = 0x0320,
|
|
kD2255_PRE_UVLO_EN = 0x0321,
|
|
|
|
|
|
};
|
|
|
|
|
|
// ---------------------------------
|
|
// GPADC control
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
kD2255_GPADC_MAN_CTRL1 = 0x4000,
|
|
kD2255_GPADC_MAN_CTRL1_MASK = 0xff,
|
|
kD2255_GPADC_MAN1_RES_LSB = 0x4001,
|
|
kD2255_GPADC_MAN1_RES_MSB = 0x4002,
|
|
|
|
kD2255_GPADC_MAN_CTRL2 = 0x4004,
|
|
kD2255_GPADC_MAN_CTRL2_MASK = 0x7F,
|
|
kD2255_GPADC_MAN2_RES_LSB = 0x4005,
|
|
kD2255_GPADC_MAN2_RES_MSB = 0x4006,
|
|
|
|
kD2255_GPADC_TDIE1_RISE = 0x4147,
|
|
// ..
|
|
kD2255_GPADC_TDIE11_RISE = 0x4151,
|
|
|
|
kDIALOG_T_OFFSET_MSB = 0x4153,
|
|
kDIALOG_T_OFFSET_LSB = 0x4154, // [0-3]
|
|
|
|
kD2265_GPADC_ANA_COMPAT_CONF = 0x4172, // to disable Antigua130's ADC_Compatibility mode
|
|
kD2265_GP_ADC_COMPAT_BYPASS = 1, // [0]
|
|
|
|
kD2255_GPADC_EVENT0 = 0x418B,
|
|
kD2255_GPADC_EVENT1 = 0x418C,
|
|
kD2255_GPADC_STATUS0 = 0x4191,
|
|
kD2255_GPADC_STATUS1 = 0x4192,
|
|
};
|
|
|
|
enum {
|
|
kDIALOG_APP_TMUX = kD2255_APP_TMUX,
|
|
#if 0
|
|
kDIALOG_BIST_ADC_CTRL = 0x0541,
|
|
kDIALOG_BIST_ADC_LSB = 0x0542,
|
|
kDIALOG_BIST_ADC_MSB = 0x0543,
|
|
kD2186_BIST_ADC_TRIM1 = 0x0545,
|
|
kD2186_BIST_ADC_ANA_TRIM0 = 0x0546,
|
|
|
|
kD2186_SPARE_RW0 = 0x0680,
|
|
kD2186_SPARE_RW_LAST = 0x0687,
|
|
kD2186_SPARE_RWTOTP0 = 0x06a0,
|
|
kD2186_SPARE_RWTOTP_LAST = 0x06a7,
|
|
kD2186_SPARE_RWOTP0 = 0x06c0,
|
|
kD2186_SPARE_RWOTP1 = 0x06c1,
|
|
#endif
|
|
};
|
|
|
|
// ---------------------------------
|
|
// RAM/TEST/SCRATCH
|
|
// ---------------------------------
|
|
|
|
enum {
|
|
// Legacy Scratch Pads
|
|
kDIALOG_MEMBYTE0 = 0x5000,
|
|
kDIALOG_MEMBYTE_LAST = 0x5027,
|
|
|
|
kDIALOG_TEST_ACCESS = 0x7000,
|
|
kDIALOG_TEST_ACCESS_ENA = 0x1D, // Antigua130 defines 1, ok to use 0x1D
|
|
kDIALOG_TEST_ACCESS_DIS = 0x00,
|
|
|
|
// Check for Antigua130 (dialog 2265) Implementation
|
|
kD2265_IMPLEMENTATION = 0x7081,
|
|
kD2265_130NM = 130,
|
|
|
|
// Scratch Pad RAM
|
|
kDIALOG_RAM0 = 0x8000,
|
|
kDIALOG_RAM_LAST = 0x87ff,
|
|
|
|
kDIALOG_EXT_MEM_CAL0_SIZE = 64,
|
|
kDIALOG_GAP_SCRATCH8_SIZE = 8, // ex diags, free now
|
|
kDIALOG_EXT_MEM_CAL1_SIZE = 336,
|
|
kDIALOG_VOLTAGE_KNOBS_SIZE = 32,
|
|
// ...
|
|
kDIALOG_DIAG_SCRATCH_SIZE = 32,
|
|
|
|
kDIALOG_EXT_MEM_CAL0 = kDIALOG_RAM0,
|
|
kDIALOG_EXT_MEM_CAL1 = kDIALOG_EXT_MEM_CAL0+kDIALOG_EXT_MEM_CAL0_SIZE+kDIALOG_GAP_SCRATCH8_SIZE,
|
|
kDIALOG_VOLTAGE_KNOBS = kDIALOG_EXT_MEM_CAL1+kDIALOG_EXT_MEM_CAL1_SIZE,
|
|
// reserved, future
|
|
kDIALOG_DIAG_SCRATCH = 0x87e0,
|
|
|
|
// handy
|
|
kDIALOG_EXT_MEM_CAL_SIZE = kDIALOG_EXT_MEM_CAL0_SIZE+kDIALOG_EXT_MEM_CAL1_SIZE,
|
|
};
|
|
|
|
#if 0
|
|
// TODO: Synthetic Accumulator Registers
|
|
enum {
|
|
kDIALOG_ACCUMULATOR_SEL_COUNT = 2,
|
|
kDIALOG_IBUS_ACCUMULATOR = 0,
|
|
kDIALOG_VBUS_ACCUMULATOR = 1,
|
|
};
|
|
#endif
|
|
|
|
enum {
|
|
// Virtual Event registers
|
|
|
|
// SYSCTL_EVENT
|
|
kD2255_EVENT_A_UOV = (1 << 1),
|
|
kD2255_EVENT_A_HIGH_TEMP_WARNING= (1 << 0),
|
|
// MFSM_EVENT
|
|
kD2255_EVENT_B_SLEEP3_EXIT = (1 << 2),
|
|
kD2255_EVENT_B_SLEEP2_EXIT = (1 << 1),
|
|
kD2255_EVENT_B_SLEEP1_EXIT = (1 << 0),
|
|
// RTC_EVENT
|
|
kD2255_EVENT_C_ALARM = (1 << 0),
|
|
// SPI_EVENT
|
|
kD2255_EVENT_D_NACK = (1 << 1),
|
|
kD2255_EVENT_D_SPI_ERR = (1 << 0),
|
|
// CLKGEN_EVENT
|
|
kD2255_EVENT_E_XTAL_ERR = (1 << 0),
|
|
// IO_EVENT_A
|
|
kD2255_EVENT_F_BUTTON4_DBL = (1 << 7),
|
|
kD2255_EVENT_F_BUTTON3_DBL = (1 << 6),
|
|
kD2255_EVENT_F_BUTTON2_DBL = (1 << 5),
|
|
kD2255_EVENT_F_BUTTON1_DBL = (1 << 4),
|
|
kD2255_EVENT_F_BUTTON4 = (1 << 3),
|
|
kD2255_EVENT_F_BUTTON3 = (1 << 2),
|
|
kD2255_EVENT_F_BUTTON2 = (1 << 1),
|
|
kD2255_EVENT_F_BUTTON1 = (1 << 0),
|
|
// IO_EVENT_B
|
|
kD2255_EVENT_G_GPIO8 = (1 << 7),
|
|
kD2255_EVENT_G_GPIO7 = (1 << 6),
|
|
kD2255_EVENT_G_GPIO6 = (1 << 5),
|
|
kD2255_EVENT_G_GPIO5 = (1 << 4),
|
|
kD2255_EVENT_G_GPIO4 = (1 << 3),
|
|
kD2255_EVENT_G_GPIO3 = (1 << 2),
|
|
kD2255_EVENT_G_GPIO2 = (1 << 1),
|
|
kD2255_EVENT_G_GPIO1 = (1 << 0),
|
|
// IO_EVENT_C
|
|
kD2255_EVENT_H_GPIO16 = (1 << 7),
|
|
kD2255_EVENT_H_GPIO15 = (1 << 6),
|
|
kD2255_EVENT_H_GPIO14 = (1 << 5),
|
|
kD2255_EVENT_H_GPIO13 = (1 << 4),
|
|
kD2255_EVENT_H_GPIO12 = (1 << 3),
|
|
kD2255_EVENT_H_GPIO11 = (1 << 2),
|
|
kD2255_EVENT_H_GPIO10 = (1 << 1),
|
|
kD2255_EVENT_H_GPIO9 = (1 << 0),
|
|
// IO_EVENT_D
|
|
kD2255_EVENT_I_GPIO21 = (1 << 4),
|
|
kD2255_EVENT_I_GPIO20 = (1 << 3),
|
|
kD2255_EVENT_I_GPIO19 = (1 << 2),
|
|
kD2255_EVENT_I_GPIO18 = (1 << 1),
|
|
kD2255_EVENT_I_GPIO17 = (1 << 0),
|
|
// GPADC_EVENT0
|
|
kD2255_EVENT_T_ADC_ERROR = (1 << 7),
|
|
kD2255_EVENT_T_EOMC2 = (1 << 1),
|
|
kD2255_EVENT_T_EOMC1 = (1 << 0),
|
|
};
|
|
|
|
|
|
// EVENT_L events are stored by LLB across sleep/wake
|
|
enum {
|
|
kD2186_EVENT_L_VIB_ILIM = (1 << 7),
|
|
kD2186_EVENT_L_IBUS_OVERFLOW = (1 << 6),
|
|
kD2186_EVENT_L_XTAL_ERROR = (1 << 5),
|
|
kD2186_EVENT_L_HIB = (1 << 4),
|
|
kD2186_EVENT_L_DWI_TO = (1 << 3),
|
|
kD2186_EVENT_L_EOMC_BIST = (1 << 2),
|
|
kD2186_EVENT_L_EOMC = (1 << 1),
|
|
kD2186_EVENT_L_ALARM = (1 << 0),
|
|
};
|
|
|
|
enum {
|
|
kDIALOG_EVENT_HOLD_BUTTON_MASK = EVENT_FLAG_MAKE(5, kD2255_EVENT_F_BUTTON2),
|
|
kDIALOG_EVENT_MENU_BUTTON_MASK = EVENT_FLAG_MAKE(5, kD2255_EVENT_F_BUTTON1),
|
|
kDIALOG_EVENT_RINGER_BUTTON_MASK= EVENT_FLAG_MAKE(5, kD2255_EVENT_F_BUTTON3),
|
|
kDIALOG_EVENT_BUTTON4_MASK = EVENT_FLAG_MAKE(5, kD2255_EVENT_F_BUTTON4),
|
|
|
|
kDIALOG_EVENT_BUTTONS = (kD2255_EVENT_F_BUTTON4 |
|
|
kD2255_EVENT_F_BUTTON3 |
|
|
kD2255_EVENT_F_BUTTON2 |
|
|
kD2255_EVENT_F_BUTTON1),
|
|
kDIALOG_EVENT_BUTTONS_MASK = EVENT_FLAG_MAKE(5, kDIALOG_EVENT_BUTTONS),
|
|
kDIALOG_EVENT_PWR_BUTTON_MASK = kDIALOG_EVENT_HOLD_BUTTON_MASK,
|
|
|
|
kDIALOG_EVENT_ALARM_MASK = EVENT_FLAG_MAKE(2, kD2255_EVENT_C_ALARM),
|
|
kDIALOG_EVENT_ACC_DET_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_EVENT_VBUS_DET_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_EVENT_VBUS_EXT_REM_MASK = kDIALOG_NOTEXIST_MASK,
|
|
|
|
// FIXME: forcing ADC1
|
|
kDIALOG_EVENT_EOMC_MASK = EVENT_FLAG_MAKE(19, kD2255_EVENT_T_EOMC1),
|
|
kDIALOG_EVENT_HIB_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_EVENT_ABCC_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_EVENT_CHG_END_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_EVENT_TBAT_MASK = kDIALOG_NOTEXIST_MASK,
|
|
|
|
kDIALOG_EVENT_GPIO1_MASK = EVENT_FLAG_MAKE(6, kD2255_EVENT_G_GPIO1),
|
|
kDIALOG_EVENT_GPIO2_MASK = EVENT_FLAG_MAKE(6, kD2255_EVENT_G_GPIO2),
|
|
kDIALOG_EVENT_GPIO3_MASK = EVENT_FLAG_MAKE(6, kD2255_EVENT_G_GPIO3),
|
|
kDIALOG_EVENT_GPIO4_MASK = EVENT_FLAG_MAKE(6, kD2255_EVENT_G_GPIO4),
|
|
kDIALOG_EVENT_GPIO5_MASK = EVENT_FLAG_MAKE(6, kD2255_EVENT_G_GPIO5),
|
|
kDIALOG_EVENT_GPIO6_MASK = EVENT_FLAG_MAKE(6, kD2255_EVENT_G_GPIO6),
|
|
kDIALOG_EVENT_GPIO7_MASK = EVENT_FLAG_MAKE(6, kD2255_EVENT_G_GPIO7),
|
|
kDIALOG_EVENT_GPIO8_MASK = EVENT_FLAG_MAKE(6, kD2255_EVENT_G_GPIO8),
|
|
|
|
kDIALOG_EVENT_GPIO9_MASK = EVENT_FLAG_MAKE(7, kD2255_EVENT_H_GPIO9),
|
|
kDIALOG_EVENT_GPIO10_MASK = EVENT_FLAG_MAKE(7, kD2255_EVENT_H_GPIO10),
|
|
kDIALOG_EVENT_GPIO11_MASK = EVENT_FLAG_MAKE(7, kD2255_EVENT_H_GPIO11),
|
|
kDIALOG_EVENT_GPIO12_MASK = EVENT_FLAG_MAKE(7, kD2255_EVENT_H_GPIO12),
|
|
kDIALOG_EVENT_GPIO13_MASK = EVENT_FLAG_MAKE(7, kD2255_EVENT_H_GPIO13),
|
|
kDIALOG_EVENT_GPIO14_MASK = EVENT_FLAG_MAKE(7, kD2255_EVENT_H_GPIO14),
|
|
kDIALOG_EVENT_GPIO15_MASK = EVENT_FLAG_MAKE(7, kD2255_EVENT_H_GPIO15),
|
|
kDIALOG_EVENT_GPIO16_MASK = EVENT_FLAG_MAKE(7, kD2255_EVENT_H_GPIO16),
|
|
|
|
kDIALOG_EVENT_GPIO17_MASK = EVENT_FLAG_MAKE(8, kD2255_EVENT_I_GPIO17),
|
|
kDIALOG_EVENT_GPIO18_MASK = EVENT_FLAG_MAKE(8, kD2255_EVENT_I_GPIO18),
|
|
kDIALOG_EVENT_GPIO19_MASK = EVENT_FLAG_MAKE(8, kD2255_EVENT_I_GPIO19),
|
|
kDIALOG_EVENT_GPIO20_MASK = EVENT_FLAG_MAKE(8, kD2255_EVENT_I_GPIO20),
|
|
kDIALOG_EVENT_GPIO21_MASK = EVENT_FLAG_MAKE(8, kD2255_EVENT_I_GPIO21),
|
|
|
|
// TODO: check HOLD, MENU, RINGER
|
|
kDIALOG_EVENT_HOLD_DBL_MASK = EVENT_FLAG_MAKE(5, kD2255_EVENT_F_BUTTON2_DBL),
|
|
kDIALOG_EVENT_MENU_DBL_MASK = EVENT_FLAG_MAKE(5, kD2255_EVENT_F_BUTTON1_DBL),
|
|
kDIALOG_EVENT_RINGER_DBL_MASK = EVENT_FLAG_MAKE(5, kD2255_EVENT_F_BUTTON3_DBL),
|
|
|
|
kDIALOG_EVENT_VHP_DET_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_EVENT_ON_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_EVENT_LDO2_EN_MASK = kDIALOG_NOTEXIST_MASK,
|
|
};
|
|
|
|
enum {
|
|
kDIALOG_STATUS_USB_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_STATUS_VBUS_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_STATUS_FW_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_STATUS_ACC_DET_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_STATUS_CHARGING_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_STATUS_CHG_TO_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_STATUS_CHG_END_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_STATUS_TBAT_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_STATUS_CHG_ATT_MASK = kDIALOG_NOTEXIST_MASK,
|
|
kDIALOG_STATUS_ABCC_MASK = kDIALOG_NOTEXIST_MASK,
|
|
};
|
|
|
|
static const statusRegisters kDialogStatusFWMask = { };
|
|
|
|
enum {
|
|
kD2255_EVENT_A_WAKEMASK = 0,
|
|
kD2255_EVENT_B_WAKEMASK = 0,
|
|
kD2255_EVENT_C_WAKEMASK = kD2255_EVENT_C_ALARM ,
|
|
kD2255_EVENT_D_WAKEMASK = 0,
|
|
kD2255_EVENT_E_WAKEMASK = 0,
|
|
kD2255_EVENT_F_WAKEMASK = kD2255_EVENT_F_BUTTON4 | kD2255_EVENT_F_BUTTON3 |
|
|
kD2255_EVENT_F_BUTTON2 | kD2255_EVENT_F_BUTTON1 ,
|
|
kD2255_EVENT_G_WAKEMASK = 0,
|
|
kD2255_EVENT_H_WAKEMASK = 0,
|
|
kD2255_EVENT_I_WAKEMASK = 0,
|
|
kD2255_EVENT_J_WAKEMASK = 0,
|
|
kD2255_EVENT_K_WAKEMASK = 0,
|
|
kD2255_EVENT_L_WAKEMASK = 0,
|
|
kD2255_EVENT_M_WAKEMASK = 0,
|
|
kD2255_EVENT_N_WAKEMASK = 0,
|
|
kD2255_EVENT_O_WAKEMASK = 0,
|
|
kD2255_EVENT_P_WAKEMASK = 0,
|
|
kD2255_EVENT_Q_WAKEMASK = 0,
|
|
kD2255_EVENT_R_WAKEMASK = 0,
|
|
kD2255_EVENT_S_WAKEMASK = 0,
|
|
kD2255_EVENT_T_WAKEMASK = 0,
|
|
kD2255_EVENT_U_WAKEMASK = 0,
|
|
kD2255_EVENT_V_WAKEMASK = 0,
|
|
kD2255_EVENT_W_WAKEMASK = 0,
|
|
kD2255_EVENT_X_WAKEMASK = 0,
|
|
kD2255_EVENT_Y_WAKEMASK = 0,
|
|
};
|
|
|
|
// All events that are masked during shutdown - inverse of the wake mask,
|
|
// events that wake up the system
|
|
static const eventRegisters kDialogEventIntMasks = {
|
|
~kD2255_EVENT_A_WAKEMASK,
|
|
~kD2255_EVENT_B_WAKEMASK,
|
|
~kD2255_EVENT_C_WAKEMASK,
|
|
~kD2255_EVENT_D_WAKEMASK,
|
|
~kD2255_EVENT_E_WAKEMASK,
|
|
~kD2255_EVENT_F_WAKEMASK,
|
|
~kD2255_EVENT_G_WAKEMASK,
|
|
~kD2255_EVENT_H_WAKEMASK,
|
|
~kD2255_EVENT_I_WAKEMASK,
|
|
~kD2255_EVENT_J_WAKEMASK,
|
|
~kD2255_EVENT_K_WAKEMASK,
|
|
~kD2255_EVENT_L_WAKEMASK,
|
|
~kD2255_EVENT_M_WAKEMASK,
|
|
~kD2255_EVENT_N_WAKEMASK,
|
|
~kD2255_EVENT_O_WAKEMASK,
|
|
~kD2255_EVENT_P_WAKEMASK,
|
|
~kD2255_EVENT_Q_WAKEMASK,
|
|
~kD2255_EVENT_R_WAKEMASK,
|
|
~kD2255_EVENT_S_WAKEMASK,
|
|
~kD2255_EVENT_T_WAKEMASK,
|
|
~kD2255_EVENT_U_WAKEMASK,
|
|
~kD2255_EVENT_V_WAKEMASK,
|
|
~kD2255_EVENT_W_WAKEMASK,
|
|
~kD2255_EVENT_X_WAKEMASK,
|
|
~kD2255_EVENT_Y_WAKEMASK,
|
|
};
|
|
|
|
// All wake events without the buttons
|
|
static const eventRegisters kDialogEventNotButtonMasks = {
|
|
kD2255_EVENT_A_WAKEMASK,
|
|
kD2255_EVENT_B_WAKEMASK,
|
|
kD2255_EVENT_C_WAKEMASK,
|
|
kD2255_EVENT_D_WAKEMASK,
|
|
kD2255_EVENT_E_WAKEMASK,
|
|
kD2255_EVENT_F_WAKEMASK & ~kDIALOG_EVENT_BUTTONS,
|
|
kD2255_EVENT_G_WAKEMASK,
|
|
kD2255_EVENT_H_WAKEMASK,
|
|
kD2255_EVENT_I_WAKEMASK,
|
|
kD2255_EVENT_J_WAKEMASK,
|
|
kD2255_EVENT_K_WAKEMASK,
|
|
kD2255_EVENT_L_WAKEMASK,
|
|
kD2255_EVENT_M_WAKEMASK,
|
|
kD2255_EVENT_N_WAKEMASK,
|
|
kD2255_EVENT_O_WAKEMASK,
|
|
kD2255_EVENT_P_WAKEMASK,
|
|
kD2255_EVENT_Q_WAKEMASK,
|
|
kD2255_EVENT_R_WAKEMASK,
|
|
kD2255_EVENT_S_WAKEMASK,
|
|
kD2255_EVENT_T_WAKEMASK,
|
|
kD2255_EVENT_U_WAKEMASK,
|
|
kD2255_EVENT_V_WAKEMASK,
|
|
kD2255_EVENT_W_WAKEMASK,
|
|
kD2255_EVENT_X_WAKEMASK,
|
|
kD2255_EVENT_Y_WAKEMASK,
|
|
};
|
|
|
|
// All events indicating external power supply
|
|
// XXX: D2255 verify this, when I have vbus? GPIO, maybe..
|
|
static const eventRegisters kDialogEventPwrsupplyMask = {
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
};
|
|
|
|
static const eventRegisters kDialogEventUSBMask = {
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
};
|
|
|
|
static const eventRegisters kDialogEventFWMask = {
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
};
|
|
|
|
enum {
|
|
kDialogEventPwrsupplyCount = 0,
|
|
kDialogEventUSBCount = 0,
|
|
kDialogEventFWCount = 0,
|
|
};
|
|
|
|
enum {
|
|
// FAULT_LOG_A (SYSCTL_FAULT_LOG1)
|
|
kDIALOG_FAULT_LOG_WDOG = FAULTLOG_FLAG_MAKE(0, (1 << 7)),
|
|
kDIALOG_FAULT_LOG_RESET_IN_3 = FAULTLOG_FLAG_MAKE(0, (1 << 6)),
|
|
kDIALOG_FAULT_LOG_RESET_IN_2 = FAULTLOG_FLAG_MAKE(0, (1 << 5)),
|
|
kDIALOG_FAULT_LOG_RESET_IN_1 = FAULTLOG_FLAG_MAKE(0, (1 << 4)),
|
|
kDIALOG_FAULT_LOG_RST = FAULTLOG_FLAG_MAKE(0, (1 << 3)),
|
|
kDIALOG_FAULT_LOG_POR = FAULTLOG_FLAG_MAKE(0, (1 << 2)),
|
|
kDIALOG_FAULT_LOG_OVER_TEMP = FAULTLOG_FLAG_MAKE(0, (1 << 1)),
|
|
kDIALOG_FAULT_LOG_VDD_UNDER = FAULTLOG_FLAG_MAKE(0, (1 << 0)),
|
|
// FAULT_LOG_B (SYSCTL_FAULT_LOG2)
|
|
kDIALOG_FAULT_LOG_BTN_SHUTDOWN = FAULTLOG_FLAG_MAKE(1, (1 << 2)),
|
|
kDIALOG_FAULT_LOG_TWO_FINGER_RESET = FAULTLOG_FLAG_MAKE(1, (1 << 1)),
|
|
kDIALOG_FAULT_LOG_NTC_SHDN = FAULTLOG_FLAG_MAKE(1, (1 << 0)),
|
|
};
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// GPADC
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
|
enum {
|
|
kD2255_ADC_CONTROL_MUX_SEL_VDD_MAIN = 0,
|
|
kD2255_ADC_CONTROL_MUX_SEL_BRICK_ID = 1,
|
|
kD2255_ADC_CONTROL_MUX_SEL_SPARE0 = 2,
|
|
kD2255_ADC_CONTROL_MUX_SEL_APP_MUX_A = 3,
|
|
kD2255_ADC_CONTROL_MUX_SEL_APP_MUX_B = 4,
|
|
// ...
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO1 = 18,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO1 = 19,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO2 = 20,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO2 = 21,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO3 = 22,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO3 = 23,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO4 = 24,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO4 = 25,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO5 = 26,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO5 = 26,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO6 = 28,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO6 = 29,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO7 = 30,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO7 = 31,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO8 = 32,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO8 = 33,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO9 = 34,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO9 = 35,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO10 = 36,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO10 = 37,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO11 = 38,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO11 = 39,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO12 = 40,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO12 = 41,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO13 = 42,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO13 = 43,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO14 = 44,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO14 = 45,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VLDO15 = 46,
|
|
kD2255_ADC_CONTROL_MUX_SEL_ILDO15 = 47,
|
|
// ReatlimeClock
|
|
kD2255_ADC_CONTROL_MUX_SEL_VRTC = 50,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IRTC = 51,
|
|
// high impedance external input
|
|
kD2255_ADC_CONTROL_MUX_SEL_ADC_IN = 82,
|
|
// NTCs
|
|
kD2255_ADC_CONTROL_MUX_SEL_TJNCT = 88,
|
|
kD2255_ADC_CONTROL_MUX_SEL_TCAL = 89,
|
|
kD2255_ADC_CONTROL_MUX_SEL_TDEV1 = 90,
|
|
kD2255_ADC_CONTROL_MUX_SEL_TDEV2 = 91,
|
|
kD2255_ADC_CONTROL_MUX_SEL_TDEV3 = 92,
|
|
kD2255_ADC_CONTROL_MUX_SEL_TDEV4 = 93,
|
|
// ...
|
|
// TINT, measure TDIE (TDIE1,TDIE11)
|
|
kD2255_ADC_CONTROL_MUX_SEL_LDO5_TEMP = 112,
|
|
kD2255_ADC_CONTROL_MUX_SEL_LDO10_TEMP = 113,
|
|
kD2255_ADC_CONTROL_MUX_SEL_BUCK0_TEMP = 114,
|
|
kD2255_ADC_CONTROL_MUX_SEL_BUCK1_TEMP,
|
|
kD2255_ADC_CONTROL_MUX_SEL_BUCK2_TEMP,
|
|
kD2255_ADC_CONTROL_MUX_SEL_BUCK3_TEMP,
|
|
kD2255_ADC_CONTROL_MUX_SEL_BUCK4_TEMP,
|
|
kD2255_ADC_CONTROL_MUX_SEL_BUCK5_TEMP,
|
|
kD2255_ADC_CONTROL_MUX_SEL_BUCK6_TEMP,
|
|
kD2255_ADC_CONTROL_MUX_SEL_BUCK7_TEMP,
|
|
kD2255_ADC_CONTROL_MUX_SEL_BUCK8_TEMP = 122,
|
|
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK0 = 144,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK1,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK2,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK3,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK4,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK5,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK6,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK7,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK8 = 152,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK0 = 176,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK1,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK2,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK3,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK4,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK5,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK6,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK7,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK8 = 184,
|
|
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK0_OFF = 208, // offset
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK1_OFF,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK2_OFF,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK3_OFF,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK4_OFF,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK5_OFF,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK6_OFF,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK7_OFF,
|
|
kD2255_ADC_CONTROL_MUX_SEL_IBUCK8_OFF = 216,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK3_SW1 = 240,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK3_SW2,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK3_SW3,
|
|
kD2255_ADC_CONTROL_MUX_SEL_VBUCK4_SW1 = 243,
|
|
|
|
kDIALOG_ADC_CONTROL_MUX_SEL_VDD_OUT = kD2255_ADC_CONTROL_MUX_SEL_VDD_MAIN,
|
|
kDIALOG_ADC_CONTROL_MUX_SEL_BRICK_ID = kD2255_ADC_CONTROL_MUX_SEL_BRICK_ID,
|
|
kDIALOG_ADC_CONTROL_MUX_SEL_NTC0 = kD2255_ADC_CONTROL_MUX_SEL_TCAL,
|
|
kDIALOG_ADC_CONTROL_MUX_NUM_NTC = 5,
|
|
kDIALOG_ADC_CONTROL_MUX_SEL_TINT_START = kD2255_ADC_CONTROL_MUX_SEL_LDO5_TEMP,
|
|
kDIALOG_ADC_CONTROL_MUX_SEL_TINT_END = kD2255_ADC_CONTROL_MUX_SEL_BUCK8_TEMP,
|
|
kDIALOG_ADC_CONTROL_MUX_SEL_TJUNC = kD2255_ADC_CONTROL_MUX_SEL_TJNCT,
|
|
|
|
// TODO: verify BRICK_ID_OFFSET
|
|
kDIALOG_ADC_BRICK_ID_OFFSET_MV = 40,
|
|
|
|
#if 0
|
|
kDIALOG_ADC_CONTROL_MAN_CONV = (1 << 7),
|
|
kDIALOG_ADC_CONTROL2_IBUS_EN = (1 << 0),
|
|
kDIALOG_ADC_CONTROL2_ADC_REF_EN = (1 << 6),
|
|
kDIALOG_ADC_CONTROL2_AUTO_VDD_OUT_EN = (1 << 7),
|
|
#endif
|
|
};
|
|
|
|
enum {
|
|
|
|
// kDIALOG_ADC_CONTROL_DEFAULTS = 0,
|
|
// kDIALOG_ADC_CONTROL2_DEFAULTS = 0,
|
|
// kDIALOG_ADC_CONTROL_ADC_REF_EN = 0,
|
|
|
|
kDIALOG_ADC_LSB_MANADC_ERROR = (1 << 7),
|
|
kDIALOG_ADC_LSB_ADC_OVL = (1 << 6),
|
|
|
|
kDIALOG_ADC_MAN_CTL = kD2255_GPADC_MAN_CTRL1,
|
|
kDIALOG_ADC_CONTROL_MUX_SEL_MASK = kD2255_GPADC_MAN_CTRL1_MASK,
|
|
kDIALOG_ADC_LSB = kD2255_GPADC_MAN1_RES_LSB,
|
|
|
|
kDIALOG_ADC_FULL_SCALE_MV = 2500,
|
|
kDIALOG_ADC_RESOLUTION_BITS = 12,
|
|
};
|
|
|
|
#if 0
|
|
enum {
|
|
kDIALOG_APP_TMUX_SEL_MASK = (7 << 0),
|
|
kDIALOG_APP_TMUX_SEL_AMUX_0 = (0 << 0),
|
|
kDIALOG_APP_TMUX_SEL_AMUX_1 = (1 << 0),
|
|
kDIALOG_APP_TMUX_SEL_AMUX_2 = (2 << 0),
|
|
kDIALOG_APP_TMUX_SEL_AMUX_3 = (3 << 0),
|
|
kDIALOG_APP_TMUX_SEL_AMUX_4 = (4 << 0),
|
|
kDIALOG_APP_TMUX_SEL_AMUX_5 = (5 << 0),
|
|
kDIALOG_APP_TMUX_SEL_AMUX_6 = (6 << 0),
|
|
kDIALOG_APP_TMUX_SEL_AMUX_7 = (7 << 0),
|
|
KDIALOG_APP_TMUX_EN = (1 << 7),
|
|
};
|
|
#endif
|
|
|
|
// ------------------------------------------------
|
|
//
|
|
// ------------------------------------------------
|
|
|
|
enum {
|
|
kDIALOG_RTC_CONTROL_MONITOR = (1 << 0),
|
|
kDIALOG_RTC_CONTROL_ALARM_EN = (1 << 6),
|
|
};
|
|
|
|
enum {
|
|
kD2255_GPIO_IO_CONFIG_IN = (0<<6),
|
|
kD2255_GPIO_IO_CONFIG_OUT_OD = (1<<6),
|
|
kD2255_GPIO_IO_CONFIG_OUT_PP = (2<<6),
|
|
// NOTE: Once a GPIO is set to a safe spare configuration, the safe spare setting must
|
|
// be changed before any changes to the associated GPIO_x_IO_TYPE, GPIOx_PUPD and
|
|
// GPIOx_WAKE_LVL register fields can be done.
|
|
kD2255_GPIO_IO_CONFIG_SAFE_SPARE = (3<<6),
|
|
|
|
kD2255_GPIO_IO_TYPE_OUT_LVL = (0<<3),
|
|
kD2255_GPIO_IO_TYPE_OUT_32K = (1<<3),
|
|
kD2255_GPIO_IO_TYPE_OUT_nRST = (2<<3),
|
|
kD2255_GPIO_IO_TYPE_OUT_TEMP = (3<<3),
|
|
kD2255_GPIO_IO_TYPE_OUT_LVL2 = (4<<3),
|
|
kD2255_GPIO_IO_TYPE_IN_LEVEL_HIGH = (0<<3),
|
|
kD2255_GPIO_IO_TYPE_IN_LEVEL_LOW = (1<<3),
|
|
kD2255_GPIO_IO_TYPE_IN_EDGE_RISING = (2<<3),
|
|
kD2255_GPIO_IO_TYPE_IN_EDGE_FALLING = (3<<3),
|
|
kD2255_GPIO_IO_TYPE_IN_EDGE_ANY = (4<<3),
|
|
|
|
kDIALOG_SYS_GPIO_CONFIG_MASK = (0x3<<6),
|
|
kDIALOG_SYS_GPIO_DIRECTION_MASK = (0x3<<3),
|
|
kDIALOG_SYS_GPIO_VALUE_MASK = (1<<0),
|
|
|
|
kDIALOG_SYS_GPIO_DIRECTION_OUT = kD2255_GPIO_IO_TYPE_OUT_LVL,
|
|
kDIALOG_SYS_GPIO_DIRECTION_OUT_32KHZ = kD2255_GPIO_IO_TYPE_OUT_32K,
|
|
kDIALOG_SYS_GPIO_DIRECTION_IN_LEVEL_HIGH = kD2255_GPIO_IO_TYPE_IN_LEVEL_HIGH,
|
|
kDIALOG_SYS_GPIO_DIRECTION_IN_LEVEL_LOW = kD2255_GPIO_IO_TYPE_IN_LEVEL_LOW,
|
|
|
|
kDIALOG_SYS_GPIO_OUTPUT_LEVEL_LOW = (0 << 0),
|
|
kDIALOG_SYS_GPIO_OUTPUT_LEVEL_HIGH = (1 << 0),
|
|
kDIALOG_SYS_GPIO_INPUT_WAKE = (1 << 0),
|
|
};
|
|
|
|
// NOTE: it doesn't work with SAFESPARE
|
|
#define IS_GPIO_OUTPUT(gpio) \
|
|
(((gpio)&kDIALOG_SYS_GPIO_CONFIG_MASK)!=kD2255_GPIO_IO_CONFIG_IN )
|
|
|
|
#define kDIALOG_STATUS_GPIO_MASK(gpio) \
|
|
STATUS_FLAG_MAKE(6 + ((gpio)/8), (1 << ((gpio) % 8)) )
|
|
|
|
#define NUM_LDOS 29
|
|
// NOTE: here bypass is the OFFSET of the bypass register from VSEL
|
|
static const struct ldo_params ldo_D2255[NUM_LDOS] = {
|
|
{ 2400, 5, 0xff, 0xff, 0x00, kD2255_LDO1_VSEL, kD2255_LDO1_EN, 1 }, // 00 - LDO1 =
|
|
{ 1200, 5, 0xff, 0xff, 2, kD2255_LDO2_VSEL, kD2255_LDO2_EN, 1 }, // 01 - LDO2 = (Byp)
|
|
{ 2400, 5, 0xff, 0xff, 0x00, kD2255_LDO3_VSEL, kD2255_LDO3_EN, 1 }, // 02 - LDO3 =
|
|
{ 600, 5, 0xff, 0xff, 0x00, kD2255_LDO4_VSEL, kD2255_LDO4_EN, 1 }, // 03 - LDO4 =
|
|
{ 2400, 5, 0xff, 0xff, 0x00, kD2255_LDO5_VSEL, kD2255_LDO5_EN, 1 }, // 04 - LDO5 =
|
|
{ 1200, 25, 0x7f, 0x7f, 2, kD2255_LDO6_VSEL, kD2255_LDO6_EN, 1 }, // 05 - LDO6 = (Byp)
|
|
{ 2400, 5, 0xff, 0xff, 0x00, kD2255_LDO7_VSEL, kD2255_LDO7_EN, 1 }, // 06 - LDO7 =
|
|
{ 2400, 5, 0xff, 0xff, 0x00, kD2255_LDO8_VSEL, kD2255_LDO8_EN, 1 }, // 07 - LDO8 =
|
|
{ 2400, 5, 0xff, 0xff, 0x00, kD2255_LDO9_VSEL, kD2255_LDO9_EN, 1 }, // 08 - LDO9 =
|
|
{ 600, 5, 0xff, 0xff, 0x00, kD2255_LDO10_VSEL, kD2255_LDO10_EN, 1 }, // 09 - LDO10 -
|
|
{ 2400, 5, 0xff, 0xff, 0x00, kD2255_LDO11_VSEL, kD2255_LDO11_EN, 1 }, // 0a - LDO11 =
|
|
{ 1800, 0, 0, 0, 0x00, 0, 0, 0 }, // 0b - there is no LDO12 (PP1V8_ALWAYS)
|
|
{ 2400, 5, 0xff, 0xff, 0x00, kD2255_LDO13_VSEL, kD2255_LDO13_EN, 1 }, // 0c - LDO13 =
|
|
{ 600, 5, 0xff, 0xff, 0x00, kD2255_LDO14_VSEL, kD2255_LDO14_EN, 1 }, // 0d - LDO14 =
|
|
{ 1200, 5, 0xff, 0xff, 2, kD2255_LDO15_VSEL, kD2255_LDO15_EN, 1 }, // 0e - LDO15 = (Byp)
|
|
|
|
{ 500, 5, 0, 0, 0x00, kD2255_BUCK0_VSEL, kD2255_BUCK0_EN, 1 }, // 0f - POWER_RAIL_CPU
|
|
{ 500, 5, 0, 0, 0x00, kD2255_BUCK1_VSEL, kD2255_BUCK1_EN, 1 }, // 10 - POWER_RAIL_GPU
|
|
{ 600, 5, 0, 0, 0x00, kD2255_BUCK2_VSEL, kD2255_BUCK2_EN, 1 }, // 11 - POWER_RAIL_SOC
|
|
{ 1100, 5, 0, 0, 0x00, kD2255_BUCK3_VSEL, kD2255_BUCK3_EN, 1 }, // 12
|
|
{ 600, 5, 0, 0, 0x00, kD2255_BUCK4_VSEL, kD2255_BUCK4_EN, 1 }, // 13
|
|
{ 600, 5, 0, 0, 0x00, kD2255_BUCK5_VSEL, kD2255_BUCK5_EN, 1 }, // 14 - POWER_RAIL_VDD_FIXED
|
|
{ 1100, 5, 0, 0, 8, kD2255_BUCK6_VSEL, kD2255_BUCK6_EN, 1 }, // 15 - BUCK6 (Byp)
|
|
{ 600, 5, 0, 0, 0x00, kD2255_BUCK7_VSEL, kD2255_BUCK7_EN, 1 }, // 16 - POWER_RAIL_CPU_RAM
|
|
{ 600, 5, 0, 0, 0x00, kD2255_BUCK8_VSEL, kD2255_BUCK8_EN, 1 }, // 17 - POWER_RAIL_GPU_RAM
|
|
|
|
{ 0, 0, 0, 0, 0x00, 0, kD2255_BUCK3_SW1_EN, 1 }, // 18
|
|
{ 0, 0, 0, 0, 0x00, 0, kD2255_BUCK3_SW2_EN, 1 }, // 19
|
|
{ 0, 0, 0, 0, 0x00, 0, kD2255_BUCK3_SW3_EN, 1 }, // 1a
|
|
{ 0, 0, 0, 0, 0x00, 0, kD2255_BUCK4_SW1_EN, 1 }, // 1b
|
|
|
|
{ 0, 0, 0, 0, 0x00, 0, kD2255_LDO6_EN, 7<<1 }, // 1c
|
|
};
|
|
#define LDOP ldo_D2255
|
|
|
|
enum {
|
|
kDIALOG_BUTTON_DBL_CLICK_RATE_MASK = (7 << 0),
|
|
kDIALOG_BUTTON_DBL_CLICK_RATE_10MS = (0 << 0),
|
|
kDIALOG_BUTTON_DBL_CLICK_RATE_20MS = (1 << 0),
|
|
kDIALOG_BUTTON_DBL_CLICK_RATE_50MS = (2 << 0),
|
|
kDIALOG_BUTTON_DBL_CLICK_RATE_60MS = (3 << 0),
|
|
kDIALOG_BUTTON_DBL_CLICK_RATE_100MS = (4 << 0),
|
|
kDIALOG_BUTTON_DBL_CLICK_RATE_200MS = (5 << 0),
|
|
kDIALOG_BUTTON_DBL_CLICK_RATE_300MS = (6 << 0),
|
|
kDIALOG_BUTTON_DBL_CLICK_RATE_400MS = (7 << 0),
|
|
|
|
kD2255_BUTTON_DBL_BTN1_DBL_EN = (1 << 3),
|
|
kD2255_BUTTON_DBL_BTN2_DBL_EN = (1 << 4),
|
|
kD2255_BUTTON_DBL_BTN3_DBL_EN = (1 << 5),
|
|
kD2255_BUTTON_DBL_BTN4_DBL_EN = (1 << 6),
|
|
|
|
// TODO: verify this!
|
|
kDIALOG_BUTTON_DBL_HOLD_DBL_EN = kD2255_BUTTON_DBL_BTN2_DBL_EN,
|
|
kDIALOG_BUTTON_DBL_MENU_DBL_EN = kD2255_BUTTON_DBL_BTN1_DBL_EN,
|
|
kDIALOG_BUTTON_DBL_RINGER_DBL_EN = kD2255_BUTTON_DBL_BTN3_DBL_EN,
|
|
};
|
|
|
|
#endif /* __DIALOG_D2255_H */
|