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