📄 pmic.h
字号:
/*
*
*
* "Copyright (c) 2000-2002 The Regents of the University of California.
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose, without fee, and without written agreement is
* hereby granted, provided that the above copyright notice, the following
* two paragraphs and the author appear in all copies of this software.
*
* IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
* OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
* CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
* ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
*
*/
/*
* IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. By
* downloading, copying, installing or using the software you agree to
* this license. If you do not agree to this license, do not download,
* install, copy or use the software.
*
* Intel Open Source License
*
* Copyright (c) 2002 Intel Corporation
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the Intel Corporation nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR ITS
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*
*/
/*
*
* Authors: Lama Nachman, Robbie Adler
*
* This file includes the PMIC command defintions. We are using the Dialog
* DA9030 part.
*
*/
#ifndef PMIC_H
#define PMIC_H
// I2C slave addr
#define PMIC_SLAVE_ADDR 0x49
// Register BUCK2 with DVC1
#define PMIC_BUCK2_REG1 0x15
// Register BUCK2 with DVC2
#define PMIC_BUCK2_REG2 0x16
// LDO on/off control in App Reg space
#define PMIC_A_REG_CONTROL_1 0x17
#define PMIC_A_REG_CONTROL_2 0x18
#define PMIC_EVENTS (0x01) // 3 byte array
#define PMIC_EVENTA (0x01)
#define PMIC_EVENTB (0x02)
#define PMIC_EVENTC (0x03)
#define PMIC_STATUS (0x04)
#define PMIC_IRQ_MASK_A (0x05)
#define PMIC_IRQ_MASK_B (0x06)
#define PMIC_IRQ_MASK_C (0x07)
#define PMIC_SYS_CONTROL_A (0x08)
#define PMIC_SYS_CONTROL_C (0x80)
#define PMIC_CHARGE_CONTROL (0x28)
#define PMIC_CC_CHARGE_ENABLE (1<<7)
#define PMIC_CC_ISET(_x) (((_x) & 0xF) << 3)
#define PMIC_CC_VSET(_x) (((_x) & 0x7))
#define PMIC_TCTR_CONTROL (0x2A)
#define PMIC_ADC_MAN_CONTROL (0x30)
#define PMIC_AMC_ADCMUX(_x) ((_x & 0x7))
#define PMIC_AMC_MAN_CONV (1<<3)
#define PMIC_AMC_LDO_INT_Enable (1<<4)
#define PMIC_MAN_RES (0x40)
#define PMIC_LED1_CONTROL (0x20)
// LDO on/off control in Baseband Reg space
#define PMIC_B_REG_CONTROL_1 0x97
#define PMIC_B_REG_CONTROL_2 0x98
#define PMIC_B_SLEEP_CONTROL_1 0x99
#define PMIC_B_SLEEP_CONTROL_2 0x9A
#define PMIC_B_SLEEP_CONTROL_3 0x9B
// IRQ_MASK_A
#define IMA_ONKEY_N 0x1
#define IMA_PWREN1 0x2
#define IMA_EXTON 0x4
#define IMA_CHDET 0x8
#define IMA_TBAT 0x10
#define IMA_VBATMON_1 0x20
#define IMA_VBATMON_2 0x40
#define IMA_CHIOVER 0x80
//IRQ_MASK_B
#define IMB_TCTO 0x1
#define IMB_CCTO 0x2
#define IMB_ADC_READY 0x4
#define IMB_VBUS_VALID_4_4 0x8
#define IMB_VBUS_VALID_4_0 0x10
#define IMB_SESSION_VALID 0x20
#define IMB_SRP_DETECT 0x40
#define IMB_WDOG 0x80
// SYS_CONTROL_A
#define SCA_SLEEP_N_EN 0x1
#define SCA_SHUTDOWN 0x2
#define SCA_HWRES_EN 0x4
#define SCA_WDOG_ACTION 0x8
#define SCA_TWDSCALE(_x) (((_x) & 7) << 4)
#define SCA_RESET_WDOG 0x80
// Events registers A, B, C
#define EVENTS_A_OFFSET 0
#define EA_ONKEY_N 0x1
#define EA_PWREN1 0x2
#define EA_EXTON 0x4
#define EA_CHDET 0x8
#define EA_TBAT 0x10
#define EA_VBATMON 0x20
#define EA_VBATMON_TXON 0x40
#define EA_CHIOVER 0x80
#define EVENTS_B_OFFSET 1
#define EVENTS_C_OFFSET 2
// BUCK2 Reg 1
#define B2R1_TRIM_MASK 0x1f
#define B2R1_TRIM_P85_V 0x0
#define B2R1_TRIM_P875_V 0x1
#define B2R1_TRIM_P9_V 0x2
#define B2R1_TRIM_P925_V 0x3
#define B2R1_TRIM_P95_V 0x4
#define B2R1_TRIM_P975_V 0x5
#define B2R1_TRIM_1_V 0x6
#define B2R1_TRIM_1_125_V 0xB
#define B2R1_TRIM_1_25_V 0x10
#define B2R1_SLEEP 0x40
#define B2R1_GO 0x80
// Reg Control 1 for App processor reg space: Enable/Disable LDOs
#define ARC1_BUCK2_EN 0x1 // on
#define ARC1_LDO10_EN 0x2 // off
#define ARC1_LDO11_EN 0x4 // off
#define ARC1_LDO13_EN 0x8 // off
#define ARC1_LDO14_EN 0x10 // off
#define ARC1_LDO15_EN 0x20 // on
#define ARC1_LDO16_EN 0x40 // on
#define ARC1_LDO17_EN 0x80 // off
// Reg Control 2 for App processor reg space : Enable/Disable LDOs
#define ARC2_LDO18_EN 0x1 // on
#define ARC2_LDO19_EN 0x2 // on
#define ARC2_SIMCP_EN 0x40 // off
// Reg Control 1 for Baseband reg space
#define BRC1_BUCK_EN 0x1 // off
#define BRC1_LDO1_EN 0x2 // off
#define BRC1_LDO2_EN 0x4 // off
#define BRC1_LDO3_EN 0x8 // BB
#define BRC1_LDO4_EN 0x10 // off
#define BRC1_LDO5_EN 0x20 // radio
#define BRC1_LDO6_EN 0x40 // off
#define BRC1_LDO7_EN 0x80 // off
// Reg Control 2 for Baseband reg space
#define BRC2_LDO8_EN 0x1 // off
#define BRC2_LDO9_EN 0x2 // off
#define BRC2_LDO10_EN 0x4 // sensor board
#define BRC2_LDO11_EN 0x8 // sensor board
#define BRC2_LDO12_EN 0x10 // BB_IO
#define BRC2_LDO14_EN 0x20 // off
#define BRC2_SIMCP_EN 0x40 // off
#define BRC2_SLEEP 0x80 // off
// Sleep control 1 for Baseband reg space
#define BSC1_LDO1(_x) (((_x) & 0x3) << 0)
#define BSC1_LDO2(_x) (((_x) & 0x3) << 2)
#define BSC1_LDO3(_x) (((_x) & 0x3) << 4)
#define BSC1_LDO4(_x) (((_x) & 0x3) << 6)
// Sleep control 2 for Baseband reg space
#define BSC2_LDO5(_x) (((_x) & 0x3) << 0)
#define BSC2_LDO7(_x) (((_x) & 0x3) << 2)
#define BSC2_LDO8(_x) (((_x) & 0x3) << 4)
#define BSC2_LDO9(_x) (((_x) & 0x3) << 6)
// Sleep control 3 for Baseband reg space
#define BSC3_LDO12(_x) (((_x) & 0x3) << 0)
#endif //PMIC_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -