1*28bb6d34SStefano Babic /* 2*28bb6d34SStefano Babic * (C) Copyright 2010 3*28bb6d34SStefano Babic * Stefano Babic, DENX Software Engineering, sbabic@denx.de. 4*28bb6d34SStefano Babic * 5*28bb6d34SStefano Babic * (C) Copyright 2009 Freescale Semiconductor, Inc. 6*28bb6d34SStefano Babic * 7*28bb6d34SStefano Babic * See file CREDITS for list of people who contributed to this 8*28bb6d34SStefano Babic * project. 9*28bb6d34SStefano Babic * 10*28bb6d34SStefano Babic * This program is free software; you can redistribute it and/or 11*28bb6d34SStefano Babic * modify it under the terms of the GNU General Public License as 12*28bb6d34SStefano Babic * published by the Free Software Foundation; either version 2 of 13*28bb6d34SStefano Babic * the License, or (at your option) any later version. 14*28bb6d34SStefano Babic * 15*28bb6d34SStefano Babic * This program is distributed in the hope that it will be useful, 16*28bb6d34SStefano Babic * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*28bb6d34SStefano Babic * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*28bb6d34SStefano Babic * GNU General Public License for more details. 19*28bb6d34SStefano Babic * 20*28bb6d34SStefano Babic * You should have received a copy of the GNU General Public License 21*28bb6d34SStefano Babic * along with this program; if not, write to the Free Software 22*28bb6d34SStefano Babic * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 23*28bb6d34SStefano Babic * MA 02111-1307 USA 24*28bb6d34SStefano Babic */ 25*28bb6d34SStefano Babic 26*28bb6d34SStefano Babic #ifndef __FSL_PMIC_H__ 27*28bb6d34SStefano Babic #define __FSL_PMIC_H__ 28*28bb6d34SStefano Babic 29*28bb6d34SStefano Babic /* 30*28bb6d34SStefano Babic * The registers of different PMIC has the same meaning 31*28bb6d34SStefano Babic * but the bit positions of the fields can differ or 32*28bb6d34SStefano Babic * some fields has a meaning only on some devices. 33*28bb6d34SStefano Babic * You have to check with the internal SPI bitmap 34*28bb6d34SStefano Babic * (see Freescale Documentation) to set the registers 35*28bb6d34SStefano Babic * for the device you are using 36*28bb6d34SStefano Babic */ 37*28bb6d34SStefano Babic enum { 38*28bb6d34SStefano Babic REG_INT_STATUS0 = 0, 39*28bb6d34SStefano Babic REG_INT_MASK0, 40*28bb6d34SStefano Babic REG_INT_SENSE0, 41*28bb6d34SStefano Babic REG_INT_STATUS1, 42*28bb6d34SStefano Babic REG_INT_MASK1, 43*28bb6d34SStefano Babic REG_INT_SENSE1, 44*28bb6d34SStefano Babic REG_PU_MODE_S, 45*28bb6d34SStefano Babic REG_IDENTIFICATION, 46*28bb6d34SStefano Babic REG_UNUSED0, 47*28bb6d34SStefano Babic REG_ACC0, 48*28bb6d34SStefano Babic REG_ACC1, /*10 */ 49*28bb6d34SStefano Babic REG_UNUSED1, 50*28bb6d34SStefano Babic REG_UNUSED2, 51*28bb6d34SStefano Babic REG_POWER_CTL0, 52*28bb6d34SStefano Babic REG_POWER_CTL1, 53*28bb6d34SStefano Babic REG_POWER_CTL2, 54*28bb6d34SStefano Babic REG_REGEN_ASSIGN, 55*28bb6d34SStefano Babic REG_UNUSED3, 56*28bb6d34SStefano Babic REG_MEM_A, 57*28bb6d34SStefano Babic REG_MEM_B, 58*28bb6d34SStefano Babic REG_RTC_TIME, /*20 */ 59*28bb6d34SStefano Babic REG_RTC_ALARM, 60*28bb6d34SStefano Babic REG_RTC_DAY, 61*28bb6d34SStefano Babic REG_RTC_DAY_ALARM, 62*28bb6d34SStefano Babic REG_SW_0, 63*28bb6d34SStefano Babic REG_SW_1, 64*28bb6d34SStefano Babic REG_SW_2, 65*28bb6d34SStefano Babic REG_SW_3, 66*28bb6d34SStefano Babic REG_SW_4, 67*28bb6d34SStefano Babic REG_SW_5, 68*28bb6d34SStefano Babic REG_SETTING_0, /*30 */ 69*28bb6d34SStefano Babic REG_SETTING_1, 70*28bb6d34SStefano Babic REG_MODE_0, 71*28bb6d34SStefano Babic REG_MODE_1, 72*28bb6d34SStefano Babic REG_POWER_MISC, 73*28bb6d34SStefano Babic REG_UNUSED4, 74*28bb6d34SStefano Babic REG_UNUSED5, 75*28bb6d34SStefano Babic REG_UNUSED6, 76*28bb6d34SStefano Babic REG_UNUSED7, 77*28bb6d34SStefano Babic REG_UNUSED8, 78*28bb6d34SStefano Babic REG_UNUSED9, /*40 */ 79*28bb6d34SStefano Babic REG_UNUSED10, 80*28bb6d34SStefano Babic REG_UNUSED11, 81*28bb6d34SStefano Babic REG_ADC0, 82*28bb6d34SStefano Babic REG_ADC1, 83*28bb6d34SStefano Babic REG_ADC2, 84*28bb6d34SStefano Babic REG_ADC3, 85*28bb6d34SStefano Babic REG_ADC4, 86*28bb6d34SStefano Babic REG_CHARGE, 87*28bb6d34SStefano Babic REG_USB0, 88*28bb6d34SStefano Babic REG_USB1, /*50 */ 89*28bb6d34SStefano Babic REG_LED_CTL0, 90*28bb6d34SStefano Babic REG_LED_CTL1, 91*28bb6d34SStefano Babic REG_LED_CTL2, 92*28bb6d34SStefano Babic REG_LED_CTL3, 93*28bb6d34SStefano Babic REG_UNUSED12, 94*28bb6d34SStefano Babic REG_UNUSED13, 95*28bb6d34SStefano Babic REG_TRIM0, 96*28bb6d34SStefano Babic REG_TRIM1, 97*28bb6d34SStefano Babic REG_TEST0, 98*28bb6d34SStefano Babic REG_TEST1, /*60 */ 99*28bb6d34SStefano Babic REG_TEST2, 100*28bb6d34SStefano Babic REG_TEST3, 101*28bb6d34SStefano Babic REG_TEST4, 102*28bb6d34SStefano Babic }; 103*28bb6d34SStefano Babic 104*28bb6d34SStefano Babic /* REG_POWER_MISC */ 105*28bb6d34SStefano Babic #define GPO1EN (1 << 6) 106*28bb6d34SStefano Babic #define GPO1STBY (1 << 7) 107*28bb6d34SStefano Babic #define GPO2EN (1 << 8) 108*28bb6d34SStefano Babic #define GPO2STBY (1 << 9) 109*28bb6d34SStefano Babic #define GPO3EN (1 << 10) 110*28bb6d34SStefano Babic #define GPO3STBY (1 << 11) 111*28bb6d34SStefano Babic #define GPO4EN (1 << 12) 112*28bb6d34SStefano Babic #define GPO4STBY (1 << 13) 113*28bb6d34SStefano Babic #define PWGT1SPIEN (1 << 15) 114*28bb6d34SStefano Babic #define PWGT2SPIEN (1 << 16) 115*28bb6d34SStefano Babic #define PWUP (1 << 21) 116*28bb6d34SStefano Babic 117*28bb6d34SStefano Babic /* Power Control 0 */ 118*28bb6d34SStefano Babic #define COINCHEN (1 << 23) 119*28bb6d34SStefano Babic #define BATTDETEN (1 << 19) 120*28bb6d34SStefano Babic 121*28bb6d34SStefano Babic /* Interrupt status 1 */ 122*28bb6d34SStefano Babic #define RTCRSTI (1 << 7) 123*28bb6d34SStefano Babic 124*28bb6d34SStefano Babic void pmic_show_pmic_info(void); 125*28bb6d34SStefano Babic void pmic_reg_write(u32 reg, u32 value); 126*28bb6d34SStefano Babic u32 pmic_reg_read(u32 reg); 127*28bb6d34SStefano Babic 128*28bb6d34SStefano Babic #endif 129