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