183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 228bb6d34SStefano Babic /* 328bb6d34SStefano Babic * (C) Copyright 2010 428bb6d34SStefano Babic * Stefano Babic, DENX Software Engineering, sbabic@denx.de. 528bb6d34SStefano Babic * 628bb6d34SStefano Babic * (C) Copyright 2009 Freescale Semiconductor, Inc. 728bb6d34SStefano Babic */ 828bb6d34SStefano Babic 928bb6d34SStefano Babic #ifndef __FSL_PMIC_H__ 1028bb6d34SStefano Babic #define __FSL_PMIC_H__ 1128bb6d34SStefano Babic 1228bb6d34SStefano Babic /* 1328bb6d34SStefano Babic * The registers of different PMIC has the same meaning 1428bb6d34SStefano Babic * but the bit positions of the fields can differ or 1528bb6d34SStefano Babic * some fields has a meaning only on some devices. 1628bb6d34SStefano Babic * You have to check with the internal SPI bitmap 1728bb6d34SStefano Babic * (see Freescale Documentation) to set the registers 1828bb6d34SStefano Babic * for the device you are using 1928bb6d34SStefano Babic */ 2028bb6d34SStefano Babic enum { 2128bb6d34SStefano Babic REG_INT_STATUS0 = 0, 2228bb6d34SStefano Babic REG_INT_MASK0, 2328bb6d34SStefano Babic REG_INT_SENSE0, 2428bb6d34SStefano Babic REG_INT_STATUS1, 2528bb6d34SStefano Babic REG_INT_MASK1, 2628bb6d34SStefano Babic REG_INT_SENSE1, 2728bb6d34SStefano Babic REG_PU_MODE_S, 2828bb6d34SStefano Babic REG_IDENTIFICATION, 2928bb6d34SStefano Babic REG_UNUSED0, 3028bb6d34SStefano Babic REG_ACC0, 3128bb6d34SStefano Babic REG_ACC1, /*10 */ 3228bb6d34SStefano Babic REG_UNUSED1, 3328bb6d34SStefano Babic REG_UNUSED2, 3428bb6d34SStefano Babic REG_POWER_CTL0, 3528bb6d34SStefano Babic REG_POWER_CTL1, 3628bb6d34SStefano Babic REG_POWER_CTL2, 3728bb6d34SStefano Babic REG_REGEN_ASSIGN, 3828bb6d34SStefano Babic REG_UNUSED3, 3928bb6d34SStefano Babic REG_MEM_A, 4028bb6d34SStefano Babic REG_MEM_B, 4128bb6d34SStefano Babic REG_RTC_TIME, /*20 */ 4228bb6d34SStefano Babic REG_RTC_ALARM, 4328bb6d34SStefano Babic REG_RTC_DAY, 4428bb6d34SStefano Babic REG_RTC_DAY_ALARM, 4528bb6d34SStefano Babic REG_SW_0, 4628bb6d34SStefano Babic REG_SW_1, 4728bb6d34SStefano Babic REG_SW_2, 4828bb6d34SStefano Babic REG_SW_3, 4928bb6d34SStefano Babic REG_SW_4, 5028bb6d34SStefano Babic REG_SW_5, 5128bb6d34SStefano Babic REG_SETTING_0, /*30 */ 5228bb6d34SStefano Babic REG_SETTING_1, 5328bb6d34SStefano Babic REG_MODE_0, 5428bb6d34SStefano Babic REG_MODE_1, 5528bb6d34SStefano Babic REG_POWER_MISC, 5628bb6d34SStefano Babic REG_UNUSED4, 5728bb6d34SStefano Babic REG_UNUSED5, 5828bb6d34SStefano Babic REG_UNUSED6, 5928bb6d34SStefano Babic REG_UNUSED7, 6028bb6d34SStefano Babic REG_UNUSED8, 6128bb6d34SStefano Babic REG_UNUSED9, /*40 */ 6228bb6d34SStefano Babic REG_UNUSED10, 6328bb6d34SStefano Babic REG_UNUSED11, 6428bb6d34SStefano Babic REG_ADC0, 6528bb6d34SStefano Babic REG_ADC1, 6628bb6d34SStefano Babic REG_ADC2, 6728bb6d34SStefano Babic REG_ADC3, 6828bb6d34SStefano Babic REG_ADC4, 6928bb6d34SStefano Babic REG_CHARGE, 7028bb6d34SStefano Babic REG_USB0, 7128bb6d34SStefano Babic REG_USB1, /*50 */ 7228bb6d34SStefano Babic REG_LED_CTL0, 7328bb6d34SStefano Babic REG_LED_CTL1, 7428bb6d34SStefano Babic REG_LED_CTL2, 7528bb6d34SStefano Babic REG_LED_CTL3, 7628bb6d34SStefano Babic REG_UNUSED12, 7728bb6d34SStefano Babic REG_UNUSED13, 7828bb6d34SStefano Babic REG_TRIM0, 7928bb6d34SStefano Babic REG_TRIM1, 8028bb6d34SStefano Babic REG_TEST0, 8128bb6d34SStefano Babic REG_TEST1, /*60 */ 8228bb6d34SStefano Babic REG_TEST2, 8328bb6d34SStefano Babic REG_TEST3, 8428bb6d34SStefano Babic REG_TEST4, 85b2e5add3SStefano Babic PMIC_NUM_OF_REGS, 8628bb6d34SStefano Babic }; 8728bb6d34SStefano Babic 8828bb6d34SStefano Babic /* REG_POWER_MISC */ 8928bb6d34SStefano Babic #define GPO1EN (1 << 6) 9028bb6d34SStefano Babic #define GPO1STBY (1 << 7) 9128bb6d34SStefano Babic #define GPO2EN (1 << 8) 9228bb6d34SStefano Babic #define GPO2STBY (1 << 9) 9328bb6d34SStefano Babic #define GPO3EN (1 << 10) 9428bb6d34SStefano Babic #define GPO3STBY (1 << 11) 9528bb6d34SStefano Babic #define GPO4EN (1 << 12) 9628bb6d34SStefano Babic #define GPO4STBY (1 << 13) 9728bb6d34SStefano Babic #define PWGT1SPIEN (1 << 15) 9828bb6d34SStefano Babic #define PWGT2SPIEN (1 << 16) 9928bb6d34SStefano Babic #define PWUP (1 << 21) 10028bb6d34SStefano Babic 10128bb6d34SStefano Babic /* Power Control 0 */ 10228bb6d34SStefano Babic #define COINCHEN (1 << 23) 10328bb6d34SStefano Babic #define BATTDETEN (1 << 19) 10428bb6d34SStefano Babic 10528bb6d34SStefano Babic /* Interrupt status 1 */ 10628bb6d34SStefano Babic #define RTCRSTI (1 << 7) 10728bb6d34SStefano Babic 1085b547f3cSFabio Estevam /* MC34708 Definitions */ 1095b547f3cSFabio Estevam #define SWx_VOLT_MASK_MC34708 0x3F 11007dc39aeSLukasz Majewski #define SWx_1_110V_MC34708 0x24 1115b547f3cSFabio Estevam #define SWx_1_250V_MC34708 0x30 1125b547f3cSFabio Estevam #define SWx_1_300V_MC34708 0x34 1135b547f3cSFabio Estevam #define TIMER_MASK_MC34708 0x300 1145b547f3cSFabio Estevam #define TIMER_4S_MC34708 0x100 1155b547f3cSFabio Estevam #define VUSBSEL_MC34708 (1 << 2) 1165b547f3cSFabio Estevam #define VUSBEN_MC34708 (1 << 3) 1175b547f3cSFabio Estevam #define SWBST_CTRL 31 118768a0597SFabio Estevam #define SWBST_AUTO 0x8 1195b547f3cSFabio Estevam 12007dc39aeSLukasz Majewski #define MC34708_REG_SW12_OPMODE 28 12107dc39aeSLukasz Majewski 12207dc39aeSLukasz Majewski #define MC34708_SW1AMODE_MASK 0x00000f 12307dc39aeSLukasz Majewski #define MC34708_SW1AMHMODE 0x000010 12407dc39aeSLukasz Majewski #define MC34708_SW1AUOMODE 0x000020 12507dc39aeSLukasz Majewski #define MC34708_SW1DVSSPEED 0x0000c0 12607dc39aeSLukasz Majewski #define MC34708_SW2MODE_MASK 0x03c000 12707dc39aeSLukasz Majewski #define MC34708_SW2MHMODE 0x040000 12807dc39aeSLukasz Majewski #define MC34708_SW2UOMODE 0x080000 12907dc39aeSLukasz Majewski #define MC34708_SW2DVSSPEED 0x300000 13007dc39aeSLukasz Majewski #define MC34708_PLLEN 0x400000 13107dc39aeSLukasz Majewski #define MC34708_PLLX 0x800000 13207dc39aeSLukasz Majewski 13307dc39aeSLukasz Majewski #define MC34708_REG_SW345_OPMODE 29 13407dc39aeSLukasz Majewski 13507dc39aeSLukasz Majewski #define MC34708_SW3MODE_MASK 0x00000f 13607dc39aeSLukasz Majewski #define MC34708_SW3MHMODE 0x000010 13707dc39aeSLukasz Majewski #define MC34708_SW3UOMODE 0x000020 13807dc39aeSLukasz Majewski #define MC34708_SW4AMODE_MASK 0x0003c0 13907dc39aeSLukasz Majewski #define MC34708_SW4AMHMODE 0x000400 14007dc39aeSLukasz Majewski #define MC34708_SW4AUOMODE 0x000800 14107dc39aeSLukasz Majewski #define MC34708_SW4BMODE_MASK 0x00f000 14207dc39aeSLukasz Majewski #define MC34708_SW4BMHMODE 0x010000 14307dc39aeSLukasz Majewski #define MC34708_SW4BUOMODE 0x020000 14407dc39aeSLukasz Majewski #define MC34708_SW5MODE_MASK 0x3c0000 14507dc39aeSLukasz Majewski #define MC34708_SW5MHMODE 0x400000 14607dc39aeSLukasz Majewski #define MC34708_SW5UOMODE 0x800000 14707dc39aeSLukasz Majewski 14807dc39aeSLukasz Majewski #define SW_MODE_OFFOFF 0x00 14907dc39aeSLukasz Majewski #define SW_MODE_PWMOFF 0x01 15007dc39aeSLukasz Majewski #define SW_MODE_PFMOFF 0x03 15107dc39aeSLukasz Majewski #define SW_MODE_APSOFF 0x04 15207dc39aeSLukasz Majewski #define SW_MODE_PWMPWM 0x05 15307dc39aeSLukasz Majewski #define SW_MODE_PWMAPS 0x06 15407dc39aeSLukasz Majewski #define SW_MODE_APSAPS 0x08 15507dc39aeSLukasz Majewski #define SW_MODE_APSPFM 0x0c 15607dc39aeSLukasz Majewski #define SW_MODE_PWMPFM 0x0d 15707dc39aeSLukasz Majewski #define SW_MODE_PFMPFM 0x0f 15807dc39aeSLukasz Majewski 159*9a84116bSLukasz Majewski #define MC34708_TRANSFER_SIZE 3 16028bb6d34SStefano Babic #endif 161