xref: /openbmc/u-boot/include/power/sandbox_pmic.h (revision e8f80a5a)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
25d387d0dSPrzemyslaw Marczak /*
35d387d0dSPrzemyslaw Marczak  *  Copyright (C) 2015 Samsung Electronics
45d387d0dSPrzemyslaw Marczak  *  Przemyslaw Marczak  <p.marczak@samsung.com>
55d387d0dSPrzemyslaw Marczak  */
65d387d0dSPrzemyslaw Marczak 
75d387d0dSPrzemyslaw Marczak #ifndef _SANDBOX_PMIC_H_
85d387d0dSPrzemyslaw Marczak #define  _SANDBOX_PMIC_H_
95d387d0dSPrzemyslaw Marczak 
105d387d0dSPrzemyslaw Marczak #define SANDBOX_LDO_DRIVER		"sandbox_ldo"
115d387d0dSPrzemyslaw Marczak #define SANDBOX_OF_LDO_PREFIX		"ldo"
125d387d0dSPrzemyslaw Marczak #define SANDBOX_BUCK_DRIVER		"sandbox_buck"
135d387d0dSPrzemyslaw Marczak #define SANDBOX_OF_BUCK_PREFIX		"buck"
145d387d0dSPrzemyslaw Marczak 
15bf802f5dSFelix Brack #define SANDBOX_BUCK_COUNT	3
165d387d0dSPrzemyslaw Marczak #define SANDBOX_LDO_COUNT	2
175d387d0dSPrzemyslaw Marczak /*
185d387d0dSPrzemyslaw Marczak  * Sandbox PMIC registers:
195d387d0dSPrzemyslaw Marczak  * We have only 12 significant registers, but we alloc 16 for padding.
205d387d0dSPrzemyslaw Marczak  */
215d387d0dSPrzemyslaw Marczak enum {
225d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_BUCK1_UV = 0,
235d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_BUCK1_UA,
245d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_BUCK1_OM,
255d387d0dSPrzemyslaw Marczak 
265d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_BUCK2_UV,
275d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_BUCK2_UA,
285d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_BUCK2_OM,
295d387d0dSPrzemyslaw Marczak 
305d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_LDO_OFFSET,
315d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_LDO1_UV = SANDBOX_PMIC_REG_LDO_OFFSET,
325d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_LDO1_UA,
335d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_LDO1_OM,
345d387d0dSPrzemyslaw Marczak 
355d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_LDO2_UV,
365d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_LDO2_UA,
375d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_LDO2_OM,
385d387d0dSPrzemyslaw Marczak 
395d387d0dSPrzemyslaw Marczak 	SANDBOX_PMIC_REG_COUNT = 16,
405d387d0dSPrzemyslaw Marczak };
415d387d0dSPrzemyslaw Marczak 
425d387d0dSPrzemyslaw Marczak /* Register offset for output: micro Volts, micro Amps, Operation Mode */
435d387d0dSPrzemyslaw Marczak enum {
445d387d0dSPrzemyslaw Marczak 	OUT_REG_UV = 0,
455d387d0dSPrzemyslaw Marczak 	OUT_REG_UA,
465d387d0dSPrzemyslaw Marczak 	OUT_REG_OM,
475d387d0dSPrzemyslaw Marczak 	OUT_REG_COUNT,
485d387d0dSPrzemyslaw Marczak };
495d387d0dSPrzemyslaw Marczak 
505d387d0dSPrzemyslaw Marczak /* Buck operation modes */
515d387d0dSPrzemyslaw Marczak enum {
525d387d0dSPrzemyslaw Marczak 	BUCK_OM_OFF = 0,
535d387d0dSPrzemyslaw Marczak 	BUCK_OM_ON,
545d387d0dSPrzemyslaw Marczak 	BUCK_OM_PWM,
555d387d0dSPrzemyslaw Marczak 	BUCK_OM_COUNT,
565d387d0dSPrzemyslaw Marczak };
575d387d0dSPrzemyslaw Marczak 
585d387d0dSPrzemyslaw Marczak /* Ldo operation modes */
595d387d0dSPrzemyslaw Marczak enum {
605d387d0dSPrzemyslaw Marczak 	LDO_OM_OFF = 0,
615d387d0dSPrzemyslaw Marczak 	LDO_OM_ON,
625d387d0dSPrzemyslaw Marczak 	LDO_OM_SLEEP,
635d387d0dSPrzemyslaw Marczak 	LDO_OM_STANDBY,
645d387d0dSPrzemyslaw Marczak 	LDO_OM_COUNT,
655d387d0dSPrzemyslaw Marczak };
665d387d0dSPrzemyslaw Marczak 
675d387d0dSPrzemyslaw Marczak /* BUCK1 Voltage: min: 0.8V, step: 25mV, max 2.4V */
685d387d0dSPrzemyslaw Marczak #define OUT_BUCK1_UV_MIN	800000
695d387d0dSPrzemyslaw Marczak #define OUT_BUCK1_UV_MAX	2400000
705d387d0dSPrzemyslaw Marczak #define OUT_BUCK1_UV_STEP	25000
715d387d0dSPrzemyslaw Marczak 
725d387d0dSPrzemyslaw Marczak /* BUCK1 Amperage: min: 150mA, step: 25mA, max: 250mA */
735d387d0dSPrzemyslaw Marczak #define OUT_BUCK1_UA_MIN	150000
745d387d0dSPrzemyslaw Marczak #define OUT_BUCK1_UA_MAX	250000
755d387d0dSPrzemyslaw Marczak #define OUT_BUCK1_UA_STEP	25000
765d387d0dSPrzemyslaw Marczak 
775d387d0dSPrzemyslaw Marczak /* BUCK2 Voltage: min: 0.75V, step: 50mV, max 3.95V */
785d387d0dSPrzemyslaw Marczak #define OUT_BUCK2_UV_MIN	750000
795d387d0dSPrzemyslaw Marczak #define OUT_BUCK2_UV_MAX	3950000
805d387d0dSPrzemyslaw Marczak #define OUT_BUCK2_UV_STEP	50000
815d387d0dSPrzemyslaw Marczak 
825d387d0dSPrzemyslaw Marczak /* LDO1 Voltage: min: 0.8V, step: 25mV, max 2.4V */
835d387d0dSPrzemyslaw Marczak #define OUT_LDO1_UV_MIN		800000
845d387d0dSPrzemyslaw Marczak #define OUT_LDO1_UV_MAX		2400000
855d387d0dSPrzemyslaw Marczak #define OUT_LDO1_UV_STEP	25000
865d387d0dSPrzemyslaw Marczak 
875d387d0dSPrzemyslaw Marczak /* LDO1 Amperage: min: 100mA, step: 50mA, max: 200mA */
885d387d0dSPrzemyslaw Marczak #define OUT_LDO1_UA_MIN		100000
895d387d0dSPrzemyslaw Marczak #define OUT_LDO1_UA_MAX		200000
905d387d0dSPrzemyslaw Marczak #define OUT_LDO1_UA_STEP	50000
915d387d0dSPrzemyslaw Marczak 
925d387d0dSPrzemyslaw Marczak /* LDO2 Voltage: min: 0.75V, step: 50mV, max 3.95V */
935d387d0dSPrzemyslaw Marczak #define OUT_LDO2_UV_MIN		750000
945d387d0dSPrzemyslaw Marczak #define OUT_LDO2_UV_MAX		3950000
955d387d0dSPrzemyslaw Marczak #define OUT_LDO2_UV_STEP	50000
965d387d0dSPrzemyslaw Marczak 
975d387d0dSPrzemyslaw Marczak /* register <-> value conversion */
985d387d0dSPrzemyslaw Marczak #define REG2VAL(min, step, reg)		((min) + ((step) * (reg)))
995d387d0dSPrzemyslaw Marczak #define VAL2REG(min, step, val)		(((val) - (min)) / (step))
1005d387d0dSPrzemyslaw Marczak 
1015d387d0dSPrzemyslaw Marczak /* Operation mode id -> register value conversion */
1025d387d0dSPrzemyslaw Marczak #define OM2REG(x)			(x)
1035d387d0dSPrzemyslaw Marczak 
104e8f339e0SPrzemyslaw Marczak /* Test data for: test/dm/power.c */
105e8f339e0SPrzemyslaw Marczak 
106e8f339e0SPrzemyslaw Marczak /* BUCK names */
107e8f339e0SPrzemyslaw Marczak #define SANDBOX_BUCK1_DEVNAME	"buck1"
108e8f339e0SPrzemyslaw Marczak #define SANDBOX_BUCK1_PLATNAME	"SUPPLY_1.2V"
109e8f339e0SPrzemyslaw Marczak #define SANDBOX_BUCK2_DEVNAME	"buck2"
110e8f339e0SPrzemyslaw Marczak #define SANDBOX_BUCK2_PLATNAME	"SUPPLY_3.3V"
111bf802f5dSFelix Brack /* BUCK3: for testing fallback regulator prefix matching during bind */
112bf802f5dSFelix Brack #define SANDBOX_BUCK3_DEVNAME	"no_match_by_nodename"
113bf802f5dSFelix Brack #define SANDBOX_BUCK3_PLATNAME	"buck_SUPPLY_1.5V"
114e8f339e0SPrzemyslaw Marczak /* LDO names */
115e8f339e0SPrzemyslaw Marczak #define SANDBOX_LDO1_DEVNAME	"ldo1"
116e8f339e0SPrzemyslaw Marczak #define SANDBOX_LDO1_PLATNAME	"VDD_EMMC_1.8V"
117e8f339e0SPrzemyslaw Marczak #define SANDBOX_LDO2_DEVNAME	"ldo2"
118e8f339e0SPrzemyslaw Marczak #define SANDBOX_LDO2_PLATNAME	"VDD_LCD_3.3V"
119e8f339e0SPrzemyslaw Marczak 
120e8f339e0SPrzemyslaw Marczak /*
121e8f339e0SPrzemyslaw Marczak  * Expected regulators setup after call of:
1223b55d30fSSimon Glass  * - regulator_autoset_by_name()
123e8f339e0SPrzemyslaw Marczak  * - regulator_list_autoset()
124e8f339e0SPrzemyslaw Marczak  */
125e8f339e0SPrzemyslaw Marczak 
1263b55d30fSSimon Glass /* BUCK1: for testing regulator_autoset_by_name() */
127e8f339e0SPrzemyslaw Marczak #define SANDBOX_BUCK1_AUTOSET_EXPECTED_UV	1200000
128e8f339e0SPrzemyslaw Marczak #define SANDBOX_BUCK1_AUTOSET_EXPECTED_UA	200000
129e8f339e0SPrzemyslaw Marczak #define SANDBOX_BUCK1_AUTOSET_EXPECTED_ENABLE	true
130e8f339e0SPrzemyslaw Marczak 
131c48cb7ebSPrzemyslaw Marczak /* BUCK2: for testing sandbox ADC's supply */
132c48cb7ebSPrzemyslaw Marczak #define SANDBOX_BUCK2_INITIAL_EXPECTED_UV	3000000
133c48cb7ebSPrzemyslaw Marczak #define SANDBOX_BUCK2_SET_UV			3300000
134c48cb7ebSPrzemyslaw Marczak 
135e8f339e0SPrzemyslaw Marczak /* LDO1/2 for testing regulator_list_autoset() */
136e8f339e0SPrzemyslaw Marczak #define SANDBOX_LDO1_AUTOSET_EXPECTED_UV	1800000
137e8f339e0SPrzemyslaw Marczak #define SANDBOX_LDO1_AUTOSET_EXPECTED_UA	100000
138e8f339e0SPrzemyslaw Marczak #define SANDBOX_LDO1_AUTOSET_EXPECTED_ENABLE	true
139e8f339e0SPrzemyslaw Marczak 
140e8f339e0SPrzemyslaw Marczak #define SANDBOX_LDO2_AUTOSET_EXPECTED_UV	3000000
141e8f339e0SPrzemyslaw Marczak #define SANDBOX_LDO2_AUTOSET_EXPECTED_UA	-ENOSYS
142e8f339e0SPrzemyslaw Marczak #define SANDBOX_LDO2_AUTOSET_EXPECTED_ENABLE	false
143e8f339e0SPrzemyslaw Marczak 
1445d387d0dSPrzemyslaw Marczak #endif
145