uboot/include/power/sandbox_pmic.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 *  Copyright (C) 2015 Samsung Electronics
   4 *  Przemyslaw Marczak  <p.marczak@samsung.com>
   5 */
   6
   7#ifndef _SANDBOX_PMIC_H_
   8#define  _SANDBOX_PMIC_H_
   9
  10#define SANDBOX_LDO_DRIVER              "sandbox_ldo"
  11#define SANDBOX_OF_LDO_PREFIX           "ldo"
  12#define SANDBOX_BUCK_DRIVER             "sandbox_buck"
  13#define SANDBOX_OF_BUCK_PREFIX          "buck"
  14
  15#define SANDBOX_BUCK_COUNT      3
  16#define SANDBOX_LDO_COUNT       2
  17/*
  18 * Sandbox PMIC registers:
  19 * We have only 12 significant registers, but we alloc 16 for padding.
  20 */
  21enum {
  22        SANDBOX_PMIC_REG_BUCK1_UV = 0,
  23        SANDBOX_PMIC_REG_BUCK1_UA,
  24        SANDBOX_PMIC_REG_BUCK1_OM,
  25
  26        SANDBOX_PMIC_REG_BUCK2_UV,
  27        SANDBOX_PMIC_REG_BUCK2_UA,
  28        SANDBOX_PMIC_REG_BUCK2_OM,
  29
  30        SANDBOX_PMIC_REG_LDO_OFFSET,
  31        SANDBOX_PMIC_REG_LDO1_UV = SANDBOX_PMIC_REG_LDO_OFFSET,
  32        SANDBOX_PMIC_REG_LDO1_UA,
  33        SANDBOX_PMIC_REG_LDO1_OM,
  34
  35        SANDBOX_PMIC_REG_LDO2_UV,
  36        SANDBOX_PMIC_REG_LDO2_UA,
  37        SANDBOX_PMIC_REG_LDO2_OM,
  38
  39        SANDBOX_PMIC_REG_COUNT = 16,
  40};
  41
  42/* Register offset for output: micro Volts, micro Amps, Operation Mode */
  43enum {
  44        OUT_REG_UV = 0,
  45        OUT_REG_UA,
  46        OUT_REG_OM,
  47        OUT_REG_COUNT,
  48};
  49
  50/* Buck operation modes */
  51enum {
  52        BUCK_OM_OFF = 0,
  53        BUCK_OM_ON,
  54        BUCK_OM_PWM,
  55        BUCK_OM_COUNT,
  56};
  57
  58/* Ldo operation modes */
  59enum {
  60        LDO_OM_OFF = 0,
  61        LDO_OM_ON,
  62        LDO_OM_SLEEP,
  63        LDO_OM_STANDBY,
  64        LDO_OM_COUNT,
  65};
  66
  67/* BUCK1 Voltage: min: 0.8V, step: 25mV, max 2.4V */
  68#define OUT_BUCK1_UV_MIN        800000
  69#define OUT_BUCK1_UV_MAX        2400000
  70#define OUT_BUCK1_UV_STEP       25000
  71
  72/* BUCK1 Amperage: min: 150mA, step: 25mA, max: 250mA */
  73#define OUT_BUCK1_UA_MIN        150000
  74#define OUT_BUCK1_UA_MAX        250000
  75#define OUT_BUCK1_UA_STEP       25000
  76
  77/* BUCK2 Voltage: min: 0.75V, step: 50mV, max 3.95V */
  78#define OUT_BUCK2_UV_MIN        750000
  79#define OUT_BUCK2_UV_MAX        3950000
  80#define OUT_BUCK2_UV_STEP       50000
  81
  82/* LDO1 Voltage: min: 0.8V, step: 25mV, max 2.4V */
  83#define OUT_LDO1_UV_MIN         800000
  84#define OUT_LDO1_UV_MAX         2400000
  85#define OUT_LDO1_UV_STEP        25000
  86
  87/* LDO1 Amperage: min: 100mA, step: 50mA, max: 200mA */
  88#define OUT_LDO1_UA_MIN         100000
  89#define OUT_LDO1_UA_MAX         200000
  90#define OUT_LDO1_UA_STEP        50000
  91
  92/* LDO2 Voltage: min: 0.75V, step: 50mV, max 3.95V */
  93#define OUT_LDO2_UV_MIN         750000
  94#define OUT_LDO2_UV_MAX         3950000
  95#define OUT_LDO2_UV_STEP        50000
  96
  97/* register <-> value conversion */
  98#define REG2VAL(min, step, reg)         ((min) + ((step) * (reg)))
  99#define VAL2REG(min, step, val)         (((val) - (min)) / (step))
 100
 101/* Operation mode id -> register value conversion */
 102#define OM2REG(x)                       (x)
 103
 104/* Test data for: test/dm/power.c */
 105
 106/* BUCK names */
 107#define SANDBOX_BUCK1_DEVNAME   "buck1"
 108#define SANDBOX_BUCK1_PLATNAME  "SUPPLY_1.2V"
 109#define SANDBOX_BUCK2_DEVNAME   "buck2"
 110#define SANDBOX_BUCK2_PLATNAME  "SUPPLY_3.3V"
 111/* BUCK3: for testing fallback regulator prefix matching during bind */
 112#define SANDBOX_BUCK3_DEVNAME   "no_match_by_nodename"
 113#define SANDBOX_BUCK3_PLATNAME  "buck_SUPPLY_1.5V"
 114/* LDO names */
 115#define SANDBOX_LDO1_DEVNAME    "ldo1"
 116#define SANDBOX_LDO1_PLATNAME   "VDD_EMMC_1.8V"
 117#define SANDBOX_LDO2_DEVNAME    "ldo2"
 118#define SANDBOX_LDO2_PLATNAME   "VDD_LCD_3.3V"
 119
 120/*
 121 * Expected regulators setup after call of:
 122 * - regulator_autoset_by_name()
 123 * - regulator_list_autoset()
 124 */
 125
 126/* BUCK1: for testing regulator_autoset_by_name() */
 127#define SANDBOX_BUCK1_AUTOSET_EXPECTED_UV       1200000
 128#define SANDBOX_BUCK1_AUTOSET_EXPECTED_UA       200000
 129#define SANDBOX_BUCK1_AUTOSET_EXPECTED_ENABLE   true
 130
 131/* BUCK2: for testing sandbox ADC's supply */
 132#define SANDBOX_BUCK2_INITIAL_EXPECTED_UV       3000000
 133#define SANDBOX_BUCK2_SET_UV                    3300000
 134
 135/* LDO1/2 for testing regulator_list_autoset() */
 136#define SANDBOX_LDO1_AUTOSET_EXPECTED_UV        1800000
 137#define SANDBOX_LDO1_AUTOSET_EXPECTED_UA        100000
 138#define SANDBOX_LDO1_AUTOSET_EXPECTED_ENABLE    true
 139
 140#define SANDBOX_LDO2_AUTOSET_EXPECTED_UV        3000000
 141#define SANDBOX_LDO2_AUTOSET_EXPECTED_UA        -ENOSYS
 142#define SANDBOX_LDO2_AUTOSET_EXPECTED_ENABLE    false
 143
 144#endif
 145