191baa6f7STim Harvey /* 291baa6f7STim Harvey * Copyright (C) 2014 Gateworks Corporation 391baa6f7STim Harvey * Tim Harvey <tharvey@gateworks.com> 491baa6f7STim Harvey * 591baa6f7STim Harvey * SPDX-License-Identifier: GPL-2.0+ 691baa6f7STim Harvey */ 791baa6f7STim Harvey 891baa6f7STim Harvey #ifndef __PFUZE100_PMIC_H_ 991baa6f7STim Harvey #define __PFUZE100_PMIC_H_ 1091baa6f7STim Harvey 1191baa6f7STim Harvey /* PFUZE100 registers */ 1291baa6f7STim Harvey enum { 1391baa6f7STim Harvey PFUZE100_DEVICEID = 0x00, 1491baa6f7STim Harvey PFUZE100_REVID = 0x03, 1591baa6f7STim Harvey PFUZE100_FABID = 0x04, 1691baa6f7STim Harvey 1791baa6f7STim Harvey PFUZE100_SW1ABVOL = 0x20, 1891baa6f7STim Harvey PFUZE100_SW1CVOL = 0x2e, 1991baa6f7STim Harvey PFUZE100_SW2VOL = 0x35, 2091baa6f7STim Harvey PFUZE100_SW3AVOL = 0x3c, 2191baa6f7STim Harvey PFUZE100_SW3BVOL = 0x43, 2291baa6f7STim Harvey PFUZE100_SW4VOL = 0x4a, 2391baa6f7STim Harvey PFUZE100_SWBSTCON1 = 0x66, 2491baa6f7STim Harvey PFUZE100_VREFDDRCON = 0x6a, 2591baa6f7STim Harvey PFUZE100_VSNVSVOL = 0x6b, 2691baa6f7STim Harvey PFUZE100_VGEN1VOL = 0x6c, 2791baa6f7STim Harvey PFUZE100_VGEN2VOL = 0x6d, 2891baa6f7STim Harvey PFUZE100_VGEN3VOL = 0x6e, 2991baa6f7STim Harvey PFUZE100_VGEN4VOL = 0x6f, 3091baa6f7STim Harvey PFUZE100_VGEN5VOL = 0x70, 3191baa6f7STim Harvey PFUZE100_VGEN6VOL = 0x71, 3291baa6f7STim Harvey 3391baa6f7STim Harvey PMIC_NUM_OF_REGS = 0x7f, 3491baa6f7STim Harvey }; 3591baa6f7STim Harvey 3691baa6f7STim Harvey /* 3791baa6f7STim Harvey * LDO Configuration 3891baa6f7STim Harvey */ 3991baa6f7STim Harvey 4091baa6f7STim Harvey /* VGEN1/2 Voltage Configuration */ 4191baa6f7STim Harvey #define LDOA_0_80V 0 4291baa6f7STim Harvey #define LDOA_0_85V 1 4391baa6f7STim Harvey #define LDOA_0_90V 2 4491baa6f7STim Harvey #define LDOA_0_95V 3 4591baa6f7STim Harvey #define LDOA_1_00V 4 4691baa6f7STim Harvey #define LDOA_1_05V 5 4791baa6f7STim Harvey #define LDOA_1_10V 6 4891baa6f7STim Harvey #define LDOA_1_15V 7 4991baa6f7STim Harvey #define LDOA_1_20V 8 5091baa6f7STim Harvey #define LDOA_1_25V 9 5191baa6f7STim Harvey #define LDOA_1_30V 10 5291baa6f7STim Harvey #define LDOA_1_35V 11 5391baa6f7STim Harvey #define LDOA_1_40V 12 5491baa6f7STim Harvey #define LDOA_1_45V 13 5591baa6f7STim Harvey #define LDOA_1_50V 14 5691baa6f7STim Harvey #define LDOA_1_55V 15 5791baa6f7STim Harvey 5891baa6f7STim Harvey /* VGEN3/4/5/6 Voltage Configuration */ 5991baa6f7STim Harvey #define LDOB_1_80V 0 6091baa6f7STim Harvey #define LDOB_1_90V 1 6191baa6f7STim Harvey #define LDOB_2_00V 2 6291baa6f7STim Harvey #define LDOB_2_10V 3 6391baa6f7STim Harvey #define LDOB_2_20V 4 6491baa6f7STim Harvey #define LDOB_2_30V 5 6591baa6f7STim Harvey #define LDOB_2_40V 6 6691baa6f7STim Harvey #define LDOB_2_50V 7 6791baa6f7STim Harvey #define LDOB_2_60V 8 6891baa6f7STim Harvey #define LDOB_2_70V 9 6991baa6f7STim Harvey #define LDOB_2_80V 10 7091baa6f7STim Harvey #define LDOB_2_90V 11 7191baa6f7STim Harvey #define LDOB_3_00V 12 7291baa6f7STim Harvey #define LDOB_3_10V 13 7391baa6f7STim Harvey #define LDOB_3_20V 14 7491baa6f7STim Harvey #define LDOB_3_30V 15 7591baa6f7STim Harvey 7691baa6f7STim Harvey #define LDO_VOL_MASK 0xf 7791baa6f7STim Harvey #define LDO_EN 4 7891baa6f7STim Harvey 7991baa6f7STim Harvey /* 8091baa6f7STim Harvey * Boost Regulator 8191baa6f7STim Harvey */ 8291baa6f7STim Harvey 8391baa6f7STim Harvey /* SWBST Output Voltage */ 8491baa6f7STim Harvey #define SWBST_5_00V 0 8591baa6f7STim Harvey #define SWBST_5_05V 1 8691baa6f7STim Harvey #define SWBST_5_10V 2 8791baa6f7STim Harvey #define SWBST_5_15V 3 8891baa6f7STim Harvey 8991baa6f7STim Harvey #define SWBST_VOL_MASK 0x3 9091baa6f7STim Harvey #define SWBST_MODE_MASK 0x6 9191baa6f7STim Harvey #define SWBST_MODE_OFF (2 << 0) 9291baa6f7STim Harvey #define SWBST_MODE_PFM (2 << 1) 9391baa6f7STim Harvey #define SWBST_MODE_AUTO (2 << 2) 9491baa6f7STim Harvey #define SWBST_MODE_APS (2 << 3) 9591baa6f7STim Harvey 96*93a6d92cSTim Harvey int power_pfuze100_init(unsigned char bus); 9791baa6f7STim Harvey #endif 98