This commit adds dtsi file for Sandbox PMIC. It fully describes the PMIC by: - i2c emul node - with a default settings of 16 registers - 2x buck regulator nodes - 2x ldo regulator nodes The default register settings are set with preprocessor macros: - VAL2REG(min[uV/uA], step[uV/uA], val[uV/uA]) - VAL2OMREG(mode id) Both defined in file: - include/dt-bindings/pmic/sandbox_pmic.h The Voltage ranges of each regulator can be found in: - include/power/sandbox_pmic.h The new file is included into: - sandbox.dts - test.dts Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com> Acked-by: Simon Glass <sjg@chromium.org> Tested on sandbox: Tested-by: Simon Glass <sjg@chromium.org>master
parent
f64000c302
commit
9038cd5313
@ -0,0 +1,78 @@ |
||||
/* |
||||
* Sandbox PMIC dts node |
||||
* |
||||
* Copyright (C) 2015 Samsung Electronics |
||||
* Przemyslaw Marczak <p.marczak@samsung.com> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include <dt-bindings/pmic/sandbox_pmic.h> |
||||
|
||||
&sandbox_pmic { |
||||
compatible = "sandbox,pmic"; |
||||
|
||||
pmic_emul { |
||||
compatible = "sandbox,i2c-pmic"; |
||||
|
||||
/* |
||||
* Default PMICs register values are set by macro |
||||
* VAL2REG(min, step, value) [uV/uA] |
||||
* VAL2OMREG(mode id) |
||||
* reg-defaults - byte array |
||||
*/ |
||||
reg-defaults = /bits/ 8 < |
||||
/* BUCK1 */ |
||||
VAL2REG(800000, 25000, 1000000) |
||||
VAL2REG(150000, 25000, 150000) |
||||
VAL2OMREG(BUCK_OM_OFF) |
||||
/* BUCK2 */ |
||||
VAL2REG(750000, 50000, 3000000) |
||||
VAL2REG(150000, 25000, 150000) |
||||
VAL2OMREG(0) |
||||
/* LDO1 */ |
||||
VAL2REG(800000, 25000, 1600000) |
||||
VAL2REG(100000, 50000, 150000) |
||||
VAL2OMREG(LDO_OM_OFF) |
||||
/* LDO2 */ |
||||
VAL2REG(750000, 50000, 3000000) |
||||
VAL2REG(150000, 25000, 150000) |
||||
VAL2OMREG(0) |
||||
/* reg[12:15] - not used */ |
||||
0x00 |
||||
0x00 |
||||
0x00 |
||||
0x00 |
||||
>; |
||||
}; |
||||
|
||||
buck1 { |
||||
regulator-name = "SUPPLY_1.2V"; |
||||
regulator-min-microvolt = <1200000>; |
||||
regulator-max-microvolt = <1200000>; |
||||
regulator-min-microamp = <200000>; |
||||
regulator-max-microamp = <200000>; |
||||
regulator-always-on; |
||||
}; |
||||
|
||||
buck2 { |
||||
regulator-name = "SUPPLY_3.3V"; |
||||
regulator-min-microvolt = <3300000>; |
||||
regulator-max-microvolt = <3300000>; |
||||
}; |
||||
|
||||
ldo1 { |
||||
regulator-name = "VDD_EMMC_1.8V"; |
||||
regulator-min-microvolt = <1800000>; |
||||
regulator-max-microvolt = <1800000>; |
||||
regulator-min-microamp = <100000>; |
||||
regulator-max-microamp = <100000>; |
||||
regulator-boot-on; |
||||
}; |
||||
|
||||
ldo2 { |
||||
regulator-name = "VDD_LCD_3.3V"; |
||||
regulator-min-microvolt = <3300000>; |
||||
regulator-max-microvolt = <3300000>; |
||||
}; |
||||
}; |
@ -0,0 +1,35 @@ |
||||
/*
|
||||
* Copyright (C) 2015 Samsung Electronics |
||||
* Przemyslaw Marczak <p.marczak@samsung.com> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#ifndef _DT_BINDINGS_SANDBOX_PMIC_H_ |
||||
#define _DT_BINDINGS_SANDBOX_PMIC_H_ |
||||
|
||||
/*
|
||||
* Sandbox PMIC - prepare reset values |
||||
* To provide the default (reset) values as in the real hardware, |
||||
* the registers are set in i2c pmic emul driver's probe() method. |
||||
* The default values are defined as below. |
||||
*/ |
||||
|
||||
/* Buck operation mode IDs */ |
||||
#define BUCK_OM_OFF 0 |
||||
#define BUCK_OM_ON 1 |
||||
#define BUCK_OM_PWM 2 |
||||
#define BUCK_OM_COUNT 3 |
||||
|
||||
/* Ldo operation mode IDs */ |
||||
#define LDO_OM_OFF 0 |
||||
#define LDO_OM_ON 1 |
||||
#define LDO_OM_SLEEP 2 |
||||
#define LDO_OM_STANDBY 3 |
||||
#define LDO_OM_COUNT 4 |
||||
|
||||
/* [Value uV/uA]/[Mode ID] to register */ |
||||
#define VAL2REG(min, step, val) (((val) - (min)) / (step)) |
||||
#define VAL2OMREG(x) (x) |
||||
|
||||
#endif |
Loading…
Reference in new issue