sandbox: dts: add sandbox_pmic.dtsi and include it to sandbox.dts and test.dts
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>
This commit is contained in:
parent
f64000c302
commit
9038cd5313
@ -115,6 +115,9 @@
|
||||
compatible = "sandbox,i2c-rtc";
|
||||
};
|
||||
};
|
||||
sandbox_pmic: sandbox_pmic {
|
||||
reg = <0x40>;
|
||||
};
|
||||
};
|
||||
|
||||
spi@0 {
|
||||
@ -205,3 +208,4 @@
|
||||
};
|
||||
|
||||
#include "cros-ec-keyboard.dtsi"
|
||||
#include "sandbox_pmic.dtsi"
|
||||
|
78
arch/sandbox/dts/sandbox_pmic.dtsi
Normal file
78
arch/sandbox/dts/sandbox_pmic.dtsi
Normal file
@ -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>;
|
||||
};
|
||||
};
|
@ -139,6 +139,10 @@
|
||||
sandbox,size = <256>;
|
||||
};
|
||||
};
|
||||
|
||||
sandbox_pmic: sandbox_pmic {
|
||||
reg = <0x40>;
|
||||
};
|
||||
};
|
||||
|
||||
pci: pci-controller {
|
||||
@ -228,3 +232,5 @@
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#include "sandbox_pmic.dtsi"
|
||||
|
35
include/dt-bindings/pmic/sandbox_pmic.h
Normal file
35
include/dt-bindings/pmic/sandbox_pmic.h
Normal file
@ -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
Block a user