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