xref: /openbmc/u-boot/include/power/stpmu1.h (revision 844f9bf1eea75ff1ac1b1552ec4cac32ba829abb)
14549e789STom Rini /* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
25d0c74e6SPatrick Delaunay /*
35d0c74e6SPatrick Delaunay  * Copyright (C) 2018, STMicroelectronics - All Rights Reserved
45d0c74e6SPatrick Delaunay  */
55d0c74e6SPatrick Delaunay 
65d0c74e6SPatrick Delaunay #ifndef __PMIC_STPMU1_H_
75d0c74e6SPatrick Delaunay #define __PMIC_STPMU1_H_
85d0c74e6SPatrick Delaunay 
95d0c74e6SPatrick Delaunay #define STPMU1_MASK_RESET_BUCK		0x18
105d0c74e6SPatrick Delaunay #define STPMU1_BUCKX_CTRL_REG(buck)	(0x20 + (buck))
115d0c74e6SPatrick Delaunay #define STPMU1_VREF_CTRL_REG		0x24
125d0c74e6SPatrick Delaunay #define STPMU1_LDOX_CTRL_REG(ldo)	(0x25 + (ldo))
135d0c74e6SPatrick Delaunay #define STPMU1_USB_CTRL_REG		0x40
145d0c74e6SPatrick Delaunay #define STPMU1_NVM_USER_STATUS_REG	0xb8
155d0c74e6SPatrick Delaunay #define STPMU1_NVM_USER_CONTROL_REG	0xb9
165d0c74e6SPatrick Delaunay 
175d0c74e6SPatrick Delaunay #define STPMU1_MASK_RESET_BUCK3		BIT(2)
185d0c74e6SPatrick Delaunay 
195d0c74e6SPatrick Delaunay #define STPMU1_BUCK_EN			BIT(0)
205d0c74e6SPatrick Delaunay #define STPMU1_BUCK_MODE		BIT(1)
215d0c74e6SPatrick Delaunay #define STPMU1_BUCK_OUTPUT_MASK		GENMASK(7, 2)
225d0c74e6SPatrick Delaunay #define STPMU1_BUCK_OUTPUT_SHIFT	2
235d0c74e6SPatrick Delaunay #define STPMU1_BUCK2_1200000V		(24 << STPMU1_BUCK_OUTPUT_SHIFT)
245d0c74e6SPatrick Delaunay #define STPMU1_BUCK2_1350000V		(30 << STPMU1_BUCK_OUTPUT_SHIFT)
255d0c74e6SPatrick Delaunay #define STPMU1_BUCK3_1800000V		(39 << STPMU1_BUCK_OUTPUT_SHIFT)
265d0c74e6SPatrick Delaunay 
275d0c74e6SPatrick Delaunay #define STPMU1_VREF_EN			BIT(0)
285d0c74e6SPatrick Delaunay 
295d0c74e6SPatrick Delaunay #define STPMU1_LDO_EN			BIT(0)
305d0c74e6SPatrick Delaunay #define STPMU1_LDO12356_OUTPUT_MASK	GENMASK(6, 2)
315d0c74e6SPatrick Delaunay #define STPMU1_LDO12356_OUTPUT_SHIFT	2
325d0c74e6SPatrick Delaunay #define STPMU1_LDO3_MODE		BIT(7)
335d0c74e6SPatrick Delaunay #define STPMU1_LDO3_DDR_SEL		31
345d0c74e6SPatrick Delaunay #define STPMU1_LDO3_1800000		(9 << STPMU1_LDO12356_OUTPUT_SHIFT)
355d0c74e6SPatrick Delaunay #define STPMU1_LDO4_UV			3300000
365d0c74e6SPatrick Delaunay 
375d0c74e6SPatrick Delaunay #define STPMU1_USB_BOOST_EN		BIT(0)
385d0c74e6SPatrick Delaunay #define STPMU1_USB_PWR_SW_EN		GENMASK(2, 1)
395d0c74e6SPatrick Delaunay 
405d0c74e6SPatrick Delaunay #define STPMU1_NVM_USER_CONTROL_PROGRAM	BIT(0)
415d0c74e6SPatrick Delaunay #define STPMU1_NVM_USER_CONTROL_READ	BIT(1)
425d0c74e6SPatrick Delaunay 
435d0c74e6SPatrick Delaunay #define STPMU1_NVM_USER_STATUS_BUSY	BIT(0)
445d0c74e6SPatrick Delaunay #define STPMU1_NVM_USER_STATUS_ERROR	BIT(1)
455d0c74e6SPatrick Delaunay 
465d0c74e6SPatrick Delaunay #define STPMU1_DEFAULT_START_UP_DELAY_MS	1
47*844f9bf1SChristophe Kerello #define STPMU1_DEFAULT_STOP_DELAY_MS		5
485d0c74e6SPatrick Delaunay #define STPMU1_USB_BOOST_START_UP_DELAY_MS	10
495d0c74e6SPatrick Delaunay 
505d0c74e6SPatrick Delaunay enum {
515d0c74e6SPatrick Delaunay 	STPMU1_BUCK1,
525d0c74e6SPatrick Delaunay 	STPMU1_BUCK2,
535d0c74e6SPatrick Delaunay 	STPMU1_BUCK3,
545d0c74e6SPatrick Delaunay 	STPMU1_BUCK4,
555d0c74e6SPatrick Delaunay 	STPMU1_MAX_BUCK,
565d0c74e6SPatrick Delaunay };
575d0c74e6SPatrick Delaunay 
585d0c74e6SPatrick Delaunay enum {
595d0c74e6SPatrick Delaunay 	STPMU1_BUCK_MODE_HP,
605d0c74e6SPatrick Delaunay 	STPMU1_BUCK_MODE_LP,
615d0c74e6SPatrick Delaunay };
625d0c74e6SPatrick Delaunay 
635d0c74e6SPatrick Delaunay enum {
645d0c74e6SPatrick Delaunay 	STPMU1_LDO1,
655d0c74e6SPatrick Delaunay 	STPMU1_LDO2,
665d0c74e6SPatrick Delaunay 	STPMU1_LDO3,
675d0c74e6SPatrick Delaunay 	STPMU1_LDO4,
685d0c74e6SPatrick Delaunay 	STPMU1_LDO5,
695d0c74e6SPatrick Delaunay 	STPMU1_LDO6,
705d0c74e6SPatrick Delaunay 	STPMU1_MAX_LDO,
715d0c74e6SPatrick Delaunay };
725d0c74e6SPatrick Delaunay 
735d0c74e6SPatrick Delaunay enum {
745d0c74e6SPatrick Delaunay 	STPMU1_LDO_MODE_NORMAL,
755d0c74e6SPatrick Delaunay 	STPMU1_LDO_MODE_BYPASS,
765d0c74e6SPatrick Delaunay 	STPMU1_LDO_MODE_SINK_SOURCE,
775d0c74e6SPatrick Delaunay };
785d0c74e6SPatrick Delaunay 
795d0c74e6SPatrick Delaunay enum {
805d0c74e6SPatrick Delaunay 	STPMU1_PWR_SW1,
815d0c74e6SPatrick Delaunay 	STPMU1_PWR_SW2,
825d0c74e6SPatrick Delaunay 	STPMU1_MAX_PWR_SW,
835d0c74e6SPatrick Delaunay };
845d0c74e6SPatrick Delaunay 
855d0c74e6SPatrick Delaunay #endif
86