mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-17 15:38:51 +09:00
![Przemyslaw Marczak](/assets/img/avatar_default.png)
This commit adds unit tests for ADC uclass's methods using sandbox ADC. Testing proper ADC binding: - dm_test_adc_bind() - device binding - dm_test_adc_wrong_channel_selection() - checking wrong channel selection Testing ADC supply operations: - dm_test_adc_supply(): - Vdd/Vss values validating - Vdd regulator updated value validating - Vdd regulator's auto enable state validating Testing ADC operations results: - dm_test_adc_single_channel_conversion() - single channel start/data - dm_test_adc_single_channel_shot() - single channel shot - dm_test_adc_multi_channel_conversion() - multi channel start/data - dm_test_adc_multi_channel_shot() - multi channel single shot Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
143 lines
3.6 KiB
C
143 lines
3.6 KiB
C
/*
|
|
* Copyright (C) 2015 Samsung Electronics
|
|
* Przemyslaw Marczak <p.marczak@samsung.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#ifndef _SANDBOX_PMIC_H_
|
|
#define _SANDBOX_PMIC_H_
|
|
|
|
#define SANDBOX_LDO_DRIVER "sandbox_ldo"
|
|
#define SANDBOX_OF_LDO_PREFIX "ldo"
|
|
#define SANDBOX_BUCK_DRIVER "sandbox_buck"
|
|
#define SANDBOX_OF_BUCK_PREFIX "buck"
|
|
|
|
#define SANDBOX_BUCK_COUNT 2
|
|
#define SANDBOX_LDO_COUNT 2
|
|
/*
|
|
* Sandbox PMIC registers:
|
|
* We have only 12 significant registers, but we alloc 16 for padding.
|
|
*/
|
|
enum {
|
|
SANDBOX_PMIC_REG_BUCK1_UV = 0,
|
|
SANDBOX_PMIC_REG_BUCK1_UA,
|
|
SANDBOX_PMIC_REG_BUCK1_OM,
|
|
|
|
SANDBOX_PMIC_REG_BUCK2_UV,
|
|
SANDBOX_PMIC_REG_BUCK2_UA,
|
|
SANDBOX_PMIC_REG_BUCK2_OM,
|
|
|
|
SANDBOX_PMIC_REG_LDO_OFFSET,
|
|
SANDBOX_PMIC_REG_LDO1_UV = SANDBOX_PMIC_REG_LDO_OFFSET,
|
|
SANDBOX_PMIC_REG_LDO1_UA,
|
|
SANDBOX_PMIC_REG_LDO1_OM,
|
|
|
|
SANDBOX_PMIC_REG_LDO2_UV,
|
|
SANDBOX_PMIC_REG_LDO2_UA,
|
|
SANDBOX_PMIC_REG_LDO2_OM,
|
|
|
|
SANDBOX_PMIC_REG_COUNT = 16,
|
|
};
|
|
|
|
/* Register offset for output: micro Volts, micro Amps, Operation Mode */
|
|
enum {
|
|
OUT_REG_UV = 0,
|
|
OUT_REG_UA,
|
|
OUT_REG_OM,
|
|
OUT_REG_COUNT,
|
|
};
|
|
|
|
/* Buck operation modes */
|
|
enum {
|
|
BUCK_OM_OFF = 0,
|
|
BUCK_OM_ON,
|
|
BUCK_OM_PWM,
|
|
BUCK_OM_COUNT,
|
|
};
|
|
|
|
/* Ldo operation modes */
|
|
enum {
|
|
LDO_OM_OFF = 0,
|
|
LDO_OM_ON,
|
|
LDO_OM_SLEEP,
|
|
LDO_OM_STANDBY,
|
|
LDO_OM_COUNT,
|
|
};
|
|
|
|
/* BUCK1 Voltage: min: 0.8V, step: 25mV, max 2.4V */
|
|
#define OUT_BUCK1_UV_MIN 800000
|
|
#define OUT_BUCK1_UV_MAX 2400000
|
|
#define OUT_BUCK1_UV_STEP 25000
|
|
|
|
/* BUCK1 Amperage: min: 150mA, step: 25mA, max: 250mA */
|
|
#define OUT_BUCK1_UA_MIN 150000
|
|
#define OUT_BUCK1_UA_MAX 250000
|
|
#define OUT_BUCK1_UA_STEP 25000
|
|
|
|
/* BUCK2 Voltage: min: 0.75V, step: 50mV, max 3.95V */
|
|
#define OUT_BUCK2_UV_MIN 750000
|
|
#define OUT_BUCK2_UV_MAX 3950000
|
|
#define OUT_BUCK2_UV_STEP 50000
|
|
|
|
/* LDO1 Voltage: min: 0.8V, step: 25mV, max 2.4V */
|
|
#define OUT_LDO1_UV_MIN 800000
|
|
#define OUT_LDO1_UV_MAX 2400000
|
|
#define OUT_LDO1_UV_STEP 25000
|
|
|
|
/* LDO1 Amperage: min: 100mA, step: 50mA, max: 200mA */
|
|
#define OUT_LDO1_UA_MIN 100000
|
|
#define OUT_LDO1_UA_MAX 200000
|
|
#define OUT_LDO1_UA_STEP 50000
|
|
|
|
/* LDO2 Voltage: min: 0.75V, step: 50mV, max 3.95V */
|
|
#define OUT_LDO2_UV_MIN 750000
|
|
#define OUT_LDO2_UV_MAX 3950000
|
|
#define OUT_LDO2_UV_STEP 50000
|
|
|
|
/* register <-> value conversion */
|
|
#define REG2VAL(min, step, reg) ((min) + ((step) * (reg)))
|
|
#define VAL2REG(min, step, val) (((val) - (min)) / (step))
|
|
|
|
/* Operation mode id -> register value conversion */
|
|
#define OM2REG(x) (x)
|
|
|
|
/* Test data for: test/dm/power.c */
|
|
|
|
/* BUCK names */
|
|
#define SANDBOX_BUCK1_DEVNAME "buck1"
|
|
#define SANDBOX_BUCK1_PLATNAME "SUPPLY_1.2V"
|
|
#define SANDBOX_BUCK2_DEVNAME "buck2"
|
|
#define SANDBOX_BUCK2_PLATNAME "SUPPLY_3.3V"
|
|
/* LDO names */
|
|
#define SANDBOX_LDO1_DEVNAME "ldo1"
|
|
#define SANDBOX_LDO1_PLATNAME "VDD_EMMC_1.8V"
|
|
#define SANDBOX_LDO2_DEVNAME "ldo2"
|
|
#define SANDBOX_LDO2_PLATNAME "VDD_LCD_3.3V"
|
|
|
|
/*
|
|
* Expected regulators setup after call of:
|
|
* - regulator_autoset_by_name()
|
|
* - regulator_list_autoset()
|
|
*/
|
|
|
|
/* BUCK1: for testing regulator_autoset_by_name() */
|
|
#define SANDBOX_BUCK1_AUTOSET_EXPECTED_UV 1200000
|
|
#define SANDBOX_BUCK1_AUTOSET_EXPECTED_UA 200000
|
|
#define SANDBOX_BUCK1_AUTOSET_EXPECTED_ENABLE true
|
|
|
|
/* BUCK2: for testing sandbox ADC's supply */
|
|
#define SANDBOX_BUCK2_INITIAL_EXPECTED_UV 3000000
|
|
#define SANDBOX_BUCK2_SET_UV 3300000
|
|
|
|
/* LDO1/2 for testing regulator_list_autoset() */
|
|
#define SANDBOX_LDO1_AUTOSET_EXPECTED_UV 1800000
|
|
#define SANDBOX_LDO1_AUTOSET_EXPECTED_UA 100000
|
|
#define SANDBOX_LDO1_AUTOSET_EXPECTED_ENABLE true
|
|
|
|
#define SANDBOX_LDO2_AUTOSET_EXPECTED_UV 3000000
|
|
#define SANDBOX_LDO2_AUTOSET_EXPECTED_UA -ENOSYS
|
|
#define SANDBOX_LDO2_AUTOSET_EXPECTED_ENABLE false
|
|
|
|
#endif
|