All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function
@ 2012-03-28  8:45 Lukasz Majewski
  2012-03-28  8:45 ` [U-Boot] [PATCH 2/3] misc:pmic:max8997 MAX8997 support for PMIC driver Lukasz Majewski
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Lukasz Majewski @ 2012-03-28  8:45 UTC (permalink / raw)
  To: u-boot

Support for voltage (in uV) to proper register value is added.
The function tied to this callback is often PMIC dependent
and shall be defined for each device.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 drivers/misc/pmic_core.c |   10 ++++++++++
 include/pmic.h           |    2 ++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/drivers/misc/pmic_core.c b/drivers/misc/pmic_core.c
index 5d62a56..4366bf0 100644
--- a/drivers/misc/pmic_core.c
+++ b/drivers/misc/pmic_core.c
@@ -89,6 +89,16 @@ struct pmic *get_pmic(void)
 	return &pmic;
 }
 
+int pmic_vol_to_reg(struct pmic *p, int uV)
+{
+	if (p->voltage_to_reg_conv == NULL) {
+		puts("PMIC: Voltage to register value function not defined\n");
+		return 0;
+	}
+
+	return p->voltage_to_reg_conv(uV);
+}
+
 int do_pmic(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
 	u32 ret, reg, val;
diff --git a/include/pmic.h b/include/pmic.h
index 52a1526..f8594a9 100644
--- a/include/pmic.h
+++ b/include/pmic.h
@@ -52,12 +52,14 @@ struct pmic {
 		struct p_i2c i2c;
 		struct p_spi spi;
 	} hw;
+	int (*voltage_to_reg_conv) (int uV);
 };
 
 int pmic_init(void);
 int check_reg(u32 reg);
 struct pmic *get_pmic(void);
 int pmic_probe(struct pmic *p);
+int pmic_vol_to_reg(struct pmic *p, int uV);
 int pmic_reg_read(struct pmic *p, u32 reg, u32 *val);
 int pmic_reg_write(struct pmic *p, u32 reg, u32 val);
 int pmic_set_output(struct pmic *p, u32 reg, int ldo, int on);
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 2/3] misc:pmic:max8997 MAX8997 support for PMIC driver
  2012-03-28  8:45 [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function Lukasz Majewski
@ 2012-03-28  8:45 ` Lukasz Majewski
  2012-03-28  8:45 ` [U-Boot] [PATCH 3/3] misc:pmic:samsung Convert TRATS target to use MAX8997 instead of MAX8998 Lukasz Majewski
  2012-03-28 10:26 ` [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function Stefano Babic
  2 siblings, 0 replies; 11+ messages in thread
From: Lukasz Majewski @ 2012-03-28  8:45 UTC (permalink / raw)
  To: u-boot

This commit adds support for MAX8997 PMIC driver.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 drivers/misc/Makefile       |    1 +
 drivers/misc/pmic_max8997.c |   60 ++++++++++++++
 include/max8997_pmic.h      |  190 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 251 insertions(+), 0 deletions(-)
 create mode 100644 drivers/misc/pmic_max8997.c
 create mode 100644 include/max8997_pmic.h

diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index a709707..30c7f8d 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -39,6 +39,7 @@ COBJS-$(CONFIG_PMIC_FSL) += pmic_fsl.o
 COBJS-$(CONFIG_PMIC_I2C) += pmic_i2c.o
 COBJS-$(CONFIG_PMIC_SPI) += pmic_spi.o
 COBJS-$(CONFIG_PMIC_MAX8998) += pmic_max8998.o
+COBJS-$(CONFIG_PMIC_MAX8997) += pmic_max8997.o
 
 COBJS	:= $(COBJS-y)
 SRCS	:= $(COBJS:.o=.c)
diff --git a/drivers/misc/pmic_max8997.c b/drivers/misc/pmic_max8997.c
new file mode 100644
index 0000000..506162f
--- /dev/null
+++ b/drivers/misc/pmic_max8997.c
@@ -0,0 +1,60 @@
+/*
+ *  Copyright (C) 2011 Samsung Electronics
+ *  Lukasz Majewski <l.majewski@samsung.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <pmic.h>
+#include <max8997_pmic.h>
+
+int voltage_to_reg(int uV)
+{
+	unsigned char ret;
+	if (uV <= 800000)
+		return 0;
+	if (uV >= 3950000)
+		return 0x3f;
+	ret = (uV - 800000) / 50000;
+	if (ret > 0x3f) {
+		printf("MAX8997 LDO SETTING ERROR (%duV) -> %u\n", uV, ret);
+		ret = 0x3f;
+	}
+
+	return ret;
+}
+
+int pmic_init(void)
+{
+	struct pmic *p = get_pmic();
+	static const char name[] = "MAX8997_PMIC";
+
+	puts("Board PMIC init\n");
+
+	p->name = name;
+	p->interface = PMIC_I2C;
+	p->number_of_regs = PMIC_NUM_OF_REGS;
+	p->hw.i2c.addr = MAX8997_I2C_ADDR;
+	p->hw.i2c.tx_num = 1;
+	p->bus = I2C_PMIC;
+	p->voltage_to_reg_conv = voltage_to_reg;
+
+	return 0;
+}
diff --git a/include/max8997_pmic.h b/include/max8997_pmic.h
new file mode 100644
index 0000000..17ae24e
--- /dev/null
+++ b/include/max8997_pmic.h
@@ -0,0 +1,190 @@
+/*
+ *  Copyright (C) 2011 Samsung Electronics
+ *  Lukasz Majewski <l.majewski@samsung.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __MAX8997_PMIC_H_
+#define __MAX8997_PMIC_H_
+
+/* MAX 8997 registers */
+enum {
+	MAX8997_REG_PMIC_ID0	= 0x00,
+	MAX8997_REG_PMIC_ID1	= 0x01,
+	MAX8997_REG_INTSRC	= 0x02,
+	MAX8997_REG_INT1	= 0x03,
+	MAX8997_REG_INT2	= 0x04,
+	MAX8997_REG_INT3	= 0x05,
+	MAX8997_REG_INT4	= 0x06,
+
+	MAX8997_REG_INT1MSK	= 0x08,
+	MAX8997_REG_INT2MSK	= 0x09,
+	MAX8997_REG_INT3MSK	= 0x0a,
+	MAX8997_REG_INT4MSK	= 0x0b,
+
+	MAX8997_REG_STATUS1	= 0x0d,
+	MAX8997_REG_STATUS2	= 0x0e,
+	MAX8997_REG_STATUS3	= 0x0f,
+	MAX8997_REG_STATUS4	= 0x10,
+
+	MAX8997_REG_MAINCON1	= 0x13,
+	MAX8997_REG_MAINCON2	= 0x14,
+	MAX8997_REG_BUCKRAMP	= 0x15,
+
+	MAX8997_REG_BUCK1CTRL	= 0x18,
+	MAX8997_REG_BUCK1DVS1	= 0x19,
+	MAX8997_REG_BUCK1DVS2	= 0x1a,
+	MAX8997_REG_BUCK1DVS3	= 0x1b,
+	MAX8997_REG_BUCK1DVS4	= 0x1c,
+	MAX8997_REG_BUCK1DVS5	= 0x1d,
+	MAX8997_REG_BUCK1DVS6	= 0x1e,
+	MAX8997_REG_BUCK1DVS7	= 0x1f,
+	MAX8997_REG_BUCK1DVS8	= 0x20,
+	MAX8997_REG_BUCK2CTRL	= 0x21,
+	MAX8997_REG_BUCK2DVS1	= 0x22,
+	MAX8997_REG_BUCK2DVS2	= 0x23,
+	MAX8997_REG_BUCK2DVS3	= 0x24,
+	MAX8997_REG_BUCK2DVS4	= 0x25,
+	MAX8997_REG_BUCK2DVS5	= 0x26,
+	MAX8997_REG_BUCK2DVS6	= 0x27,
+	MAX8997_REG_BUCK2DVS7	= 0x28,
+	MAX8997_REG_BUCK2DVS8	= 0x29,
+	MAX8997_REG_BUCK3CTRL	= 0x2a,
+	MAX8997_REG_BUCK3DVS	= 0x2b,
+	MAX8997_REG_BUCK4CTRL	= 0x2c,
+	MAX8997_REG_BUCK4DVS	= 0x2d,
+	MAX8997_REG_BUCK5CTRL	= 0x2e,
+	MAX8997_REG_BUCK5DVS1	= 0x2f,
+	MAX8997_REG_BUCK5DVS2	= 0x30,
+	MAX8997_REG_BUCK5DVS3	= 0x31,
+	MAX8997_REG_BUCK5DVS4	= 0x32,
+	MAX8997_REG_BUCK5DVS5	= 0x33,
+	MAX8997_REG_BUCK5DVS6	= 0x34,
+	MAX8997_REG_BUCK5DVS7	= 0x35,
+	MAX8997_REG_BUCK5DVS8	= 0x36,
+	MAX8997_REG_BUCK6CTRL	= 0x37,
+	MAX8997_REG_BUCK6BPSKIPCTRL	= 0x38,
+	MAX8997_REG_BUCK7CTRL	= 0x39,
+	MAX8997_REG_BUCK7DVS	= 0x3a,
+	MAX8997_REG_LDO1CTRL	= 0x3b,
+	MAX8997_REG_LDO2CTRL	= 0x3c,
+	MAX8997_REG_LDO3CTRL	= 0x3d,
+	MAX8997_REG_LDO4CTRL	= 0x3e,
+	MAX8997_REG_LDO5CTRL	= 0x3f,
+	MAX8997_REG_LDO6CTRL	= 0x40,
+	MAX8997_REG_LDO7CTRL	= 0x41,
+	MAX8997_REG_LDO8CTRL	= 0x42,
+	MAX8997_REG_LDO9CTRL	= 0x43,
+	MAX8997_REG_LDO10CTRL	= 0x44,
+	MAX8997_REG_LDO11CTRL	= 0x45,
+	MAX8997_REG_LDO12CTRL	= 0x46,
+	MAX8997_REG_LDO13CTRL	= 0x47,
+	MAX8997_REG_LDO14CTRL	= 0x48,
+	MAX8997_REG_LDO15CTRL	= 0x49,
+	MAX8997_REG_LDO16CTRL	= 0x4a,
+	MAX8997_REG_LDO17CTRL	= 0x4b,
+	MAX8997_REG_LDO18CTRL	= 0x4c,
+	MAX8997_REG_LDO21CTRL	= 0x4d,
+
+	MAX8997_REG_MBCCTRL1	= 0x50,
+	MAX8997_REG_MBCCTRL2	= 0x51,
+	MAX8997_REG_MBCCTRL3	= 0x52,
+	MAX8997_REG_MBCCTRL4	= 0x53,
+	MAX8997_REG_MBCCTRL5	= 0x54,
+	MAX8997_REG_MBCCTRL6	= 0x55,
+	MAX8997_REG_OTPCGHCVS	= 0x56,
+
+	MAX8997_REG_SAFEOUTCTRL	= 0x5a,
+
+	MAX8997_REG_LBCNFG1	= 0x5e,
+	MAX8997_REG_LBCNFG2	= 0x5f,
+	MAX8997_REG_BBCCTRL	= 0x60,
+
+	MAX8997_REG_FLASH1_CUR	= 0x63, /* 0x63 ~ 0x6e for FLASH */
+	MAX8997_REG_FLASH2_CUR	= 0x64,
+	MAX8997_REG_MOVIE_CUR	= 0x65,
+	MAX8997_REG_GSMB_CUR	= 0x66,
+	MAX8997_REG_BOOST_CNTL	= 0x67,
+	MAX8997_REG_LEN_CNTL	= 0x68,
+	MAX8997_REG_FLASH_CNTL	= 0x69,
+	MAX8997_REG_WDT_CNTL	= 0x6a,
+	MAX8997_REG_MAXFLASH1	= 0x6b,
+	MAX8997_REG_MAXFLASH2	= 0x6c,
+	MAX8997_REG_FLASHSTATUS	= 0x6d,
+	MAX8997_REG_FLASHSTATUSMASK	= 0x6e,
+
+	MAX8997_REG_GPIOCNTL1	= 0x70,
+	MAX8997_REG_GPIOCNTL2	= 0x71,
+	MAX8997_REG_GPIOCNTL3	= 0x72,
+	MAX8997_REG_GPIOCNTL4	= 0x73,
+	MAX8997_REG_GPIOCNTL5	= 0x74,
+	MAX8997_REG_GPIOCNTL6	= 0x75,
+	MAX8997_REG_GPIOCNTL7	= 0x76,
+	MAX8997_REG_GPIOCNTL8	= 0x77,
+	MAX8997_REG_GPIOCNTL9	= 0x78,
+	MAX8997_REG_GPIOCNTL10	= 0x79,
+	MAX8997_REG_GPIOCNTL11	= 0x7a,
+	MAX8997_REG_GPIOCNTL12	= 0x7b,
+
+	MAX8997_REG_LDO1CONFIG	= 0x80,
+	MAX8997_REG_LDO2CONFIG	= 0x81,
+	MAX8997_REG_LDO3CONFIG	= 0x82,
+	MAX8997_REG_LDO4CONFIG	= 0x83,
+	MAX8997_REG_LDO5CONFIG	= 0x84,
+	MAX8997_REG_LDO6CONFIG	= 0x85,
+	MAX8997_REG_LDO7CONFIG	= 0x86,
+	MAX8997_REG_LDO8CONFIG	= 0x87,
+	MAX8997_REG_LDO9CONFIG	= 0x88,
+	MAX8997_REG_LDO10CONFIG	= 0x89,
+	MAX8997_REG_LDO11CONFIG	= 0x8a,
+	MAX8997_REG_LDO12CONFIG	= 0x8b,
+	MAX8997_REG_LDO13CONFIG	= 0x8c,
+	MAX8997_REG_LDO14CONFIG	= 0x8d,
+	MAX8997_REG_LDO15CONFIG	= 0x8e,
+	MAX8997_REG_LDO16CONFIG	= 0x8f,
+	MAX8997_REG_LDO17CONFIG	= 0x90,
+	MAX8997_REG_LDO18CONFIG	= 0x91,
+	MAX8997_REG_LDO21CONFIG	= 0x92,
+
+	MAX8997_REG_DVSOKTIMER1	= 0x97,
+	MAX8997_REG_DVSOKTIMER2	= 0x98,
+	MAX8997_REG_DVSOKTIMER4	= 0x99,
+	MAX8997_REG_DVSOKTIMER5	= 0x9a,
+
+	PMIC_NUM_OF_REGS = 0x9b,
+};
+
+#define ENSAFEOUT1 (1 << 6)
+#define ENSAFEOUT2 (1 << 7)
+
+#define MAX8997_I2C_ADDR        (0xCC >> 1)
+#define MAX8997_RTC_ADDR	(0x0C >> 1)
+#define MAX8997_MUIC_ADDR	(0x4A >> 1)
+#define MAX8997_FG_ADDR	(0x6C >> 1)
+
+enum {
+	LDO_OFF = 0,
+	LDO_ON = 1,
+
+	DIS_LDO = (0x00 << 6),
+	EN_LDO = (0x3 << 6),
+};
+
+#endif /* __MAX8997_PMIC_H_ */
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 3/3] misc:pmic:samsung Convert TRATS target to use MAX8997 instead of MAX8998
  2012-03-28  8:45 [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function Lukasz Majewski
  2012-03-28  8:45 ` [U-Boot] [PATCH 2/3] misc:pmic:max8997 MAX8997 support for PMIC driver Lukasz Majewski
@ 2012-03-28  8:45 ` Lukasz Majewski
  2012-03-28 10:19   ` Minkyu Kang
  2012-03-28 10:26 ` [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function Stefano Babic
  2 siblings, 1 reply; 11+ messages in thread
From: Lukasz Majewski @ 2012-03-28  8:45 UTC (permalink / raw)
  To: u-boot

TRATS target uses MAX8997 PMIC device instead of MAX8998.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 board/samsung/trats/trats.c |   27 ++++++++++-----------------
 include/configs/trats.h     |    2 +-
 2 files changed, 11 insertions(+), 18 deletions(-)

diff --git a/board/samsung/trats/trats.c b/board/samsung/trats/trats.c
index aa4291d..a7b4e4a 100644
--- a/board/samsung/trats/trats.c
+++ b/board/samsung/trats/trats.c
@@ -32,7 +32,7 @@
 #include <asm/arch/power.h>
 #include <pmic.h>
 #include <usb/s3c_udc.h>
-#include <max8998_pmic.h>
+#include <max8997_pmic.h>
 
 #include "setup.h"
 
@@ -216,26 +216,19 @@ static int s5pc210_phy_control(int on)
 		return -1;
 
 	if (on) {
-		ret |= pmic_set_output(p,
-				       MAX8998_REG_BUCK_ACTIVE_DISCHARGE3,
-				       MAX8998_SAFEOUT1, LDO_ON);
-		ret |= pmic_set_output(p, MAX8998_REG_ONOFF1,
-				      MAX8998_LDO3, LDO_ON);
-		ret |= pmic_set_output(p, MAX8998_REG_ONOFF2,
-				      MAX8998_LDO8, LDO_ON);
-
+		ret |= pmic_set_output(p, MAX8997_REG_SAFEOUTCTRL,
+				      ENSAFEOUT1, LDO_ON);
+		ret |= pmic_reg_write(p, MAX8997_REG_LDO3CTRL, EN_LDO);
+		ret |= pmic_reg_write(p, MAX8997_REG_LDO8CTRL, EN_LDO);
 	} else {
-		ret |= pmic_set_output(p, MAX8998_REG_ONOFF2,
-				      MAX8998_LDO8, LDO_OFF);
-		ret |= pmic_set_output(p, MAX8998_REG_ONOFF1,
-				      MAX8998_LDO3, LDO_OFF);
-		ret |= pmic_set_output(p,
-				       MAX8998_REG_BUCK_ACTIVE_DISCHARGE3,
-				       MAX8998_SAFEOUT1, LDO_OFF);
+		ret |= pmic_reg_write(p, MAX8997_REG_LDO8CTRL, DIS_LDO);
+		ret |= pmic_reg_write(p, MAX8997_REG_LDO3CTRL, DIS_LDO);
+		ret |= pmic_set_output(p, MAX8997_REG_SAFEOUTCTRL,
+				      ENSAFEOUT1, LDO_OFF);
 	}
 
 	if (ret) {
-		puts("MAX8998 LDO setting error!\n");
+		puts("MAX8997 LDO setting error!\n");
 		return -1;
 	}
 
diff --git a/include/configs/trats.h b/include/configs/trats.h
index 10f11d9..585fd71 100644
--- a/include/configs/trats.h
+++ b/include/configs/trats.h
@@ -208,7 +208,7 @@
 
 #define CONFIG_PMIC
 #define CONFIG_PMIC_I2C
-#define CONFIG_PMIC_MAX8998
+#define CONFIG_PMIC_MAX8997
 
 #define CONFIG_USB_GADGET
 #define CONFIG_USB_GADGET_S3C_UDC_OTG
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 3/3] misc:pmic:samsung Convert TRATS target to use MAX8997 instead of MAX8998
  2012-03-28  8:45 ` [U-Boot] [PATCH 3/3] misc:pmic:samsung Convert TRATS target to use MAX8997 instead of MAX8998 Lukasz Majewski
@ 2012-03-28 10:19   ` Minkyu Kang
  0 siblings, 0 replies; 11+ messages in thread
From: Minkyu Kang @ 2012-03-28 10:19 UTC (permalink / raw)
  To: u-boot

On 28 March 2012 17:45, Lukasz Majewski <l.majewski@samsung.com> wrote:
> TRATS target uses MAX8997 PMIC device instead of MAX8998.
>
> Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Minkyu Kang <mk7.kang@samsung.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
> ?board/samsung/trats/trats.c | ? 27 ++++++++++-----------------
> ?include/configs/trats.h ? ? | ? ?2 +-
> ?2 files changed, 11 insertions(+), 18 deletions(-)
>

Acked-by: Minkyu Kang <mk7.kang@samsung.com>

-- 
from. prom.
www.promsoft.net

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function
  2012-03-28  8:45 [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function Lukasz Majewski
  2012-03-28  8:45 ` [U-Boot] [PATCH 2/3] misc:pmic:max8997 MAX8997 support for PMIC driver Lukasz Majewski
  2012-03-28  8:45 ` [U-Boot] [PATCH 3/3] misc:pmic:samsung Convert TRATS target to use MAX8997 instead of MAX8998 Lukasz Majewski
@ 2012-03-28 10:26 ` Stefano Babic
  2012-03-28 11:26   ` Lukasz Majewski
  2 siblings, 1 reply; 11+ messages in thread
From: Stefano Babic @ 2012-03-28 10:26 UTC (permalink / raw)
  To: u-boot

On 28/03/2012 10:45, Lukasz Majewski wrote:
> Support for voltage (in uV) to proper register value is added.
> The function tied to this callback is often PMIC dependent
> and shall be defined for each device.
> 
> Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---

Hi Lukasz,

>  
> +int pmic_vol_to_reg(struct pmic *p, int uV)

You added a new entry point to pmic, but you do not use it...I have not
found in your patchset why it is necessary for you.

I am not sure if we require to add this to the PMIC API or hide in the
pmic specific code. Other PMICs has not a a register for different
voltages, but only a bit inside the same register (this is the case for
the Freescale's PMICs we currently support in u-boot).

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function
  2012-03-28 10:26 ` [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function Stefano Babic
@ 2012-03-28 11:26   ` Lukasz Majewski
  2012-03-28 11:41     ` Stefano Babic
  0 siblings, 1 reply; 11+ messages in thread
From: Lukasz Majewski @ 2012-03-28 11:26 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

On Wed, 28 Mar 2012 12:26:46 +0200
Stefano Babic <sbabic@denx.de> wrote:

> On 28/03/2012 10:45, Lukasz Majewski wrote:
> > Support for voltage (in uV) to proper register value is added.
> > The function tied to this callback is often PMIC dependent
> > and shall be defined for each device.
> > 
> > Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > Cc: Stefano Babic <sbabic@denx.de>
> > ---
> 
> Hi Lukasz,
> 
> >  
> > +int pmic_vol_to_reg(struct pmic *p, int uV)
> 
> You added a new entry point to pmic, but you do not use it...I have
> not found in your patchset why it is necessary for you.
> 

Rationale for this change is in commits following this one.
For trats Samsung target it is necessary to change the default voltage.

I think, that providing access to such a function as a pointer is the
best possible solution.

For example the MAX8997 and MAX8998 PMICs have different way of
calculating the value, which represents the LDO output value.


> I am not sure if we require to add this to the PMIC API or hide in the
> pmic specific code. Other PMICs has not a a register for different
> voltages, but only a bit inside the same register (this is the case
> for the Freescale's PMICs we currently support in u-boot).

I think, that it is easier to define function pointer in the pmic
structure, than separate functions and handling them in target platform
data.


> Best regards,
> Stefano Babic
> 


-- 
Best regards,

Lukasz Majewski

Samsung Poland R&D Center
Platform Group

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function
  2012-03-28 11:26   ` Lukasz Majewski
@ 2012-03-28 11:41     ` Stefano Babic
       [not found]       ` <20120328143820.44ca652c@lmajewski.digital.local>
  0 siblings, 1 reply; 11+ messages in thread
From: Stefano Babic @ 2012-03-28 11:41 UTC (permalink / raw)
  To: u-boot

On 28/03/2012 13:26, Lukasz Majewski wrote:

Hi Lukasz,
>>
>>>  
>>> +int pmic_vol_to_reg(struct pmic *p, int uV)
>>
>> You added a new entry point to pmic, but you do not use it...I have
>> not found in your patchset why it is necessary for you.
>>
> 
> Rationale for this change is in commits following this one.
> For trats Samsung target it is necessary to change the default voltage.

Yes, I was expecting that you call pmic_vol_to_reg() in your following
patches, but I cannot find it. Am I missing something ?

> 
> I think, that providing access to such a function as a pointer is the
> best possible solution.
> 
> For example the MAX8997 and MAX8998 PMICs have different way of
> calculating the value, which represents the LDO output value.
> 
> 
>> I am not sure if we require to add this to the PMIC API or hide in the
>> pmic specific code. Other PMICs has not a a register for different
>> voltages, but only a bit inside the same register (this is the case
>> for the Freescale's PMICs we currently support in u-boot).
> 
> I think, that it is easier to define function pointer in the pmic
> structure, than separate functions and handling them in target platform
> data.

Ok, understood.

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function
       [not found]       ` <20120328143820.44ca652c@lmajewski.digital.local>
@ 2012-03-28 12:50         ` Stefano Babic
  2012-03-28 13:13           ` Lukasz Majewski
  0 siblings, 1 reply; 11+ messages in thread
From: Stefano Babic @ 2012-03-28 12:50 UTC (permalink / raw)
  To: u-boot

On 28/03/2012 14:38, Lukasz Majewski wrote:

> Hi Stefano,
> 

Hi Lucasz,

> I've already forwarded those patches to you.
> They are also available on the mailing list, so I don't know what has
> happened.

Really nothing, I got all e-mails, I was only not able to explain my doubt.
I try again:

- In patch 1/3 you add voltage_to_reg to the pmic struct
	==> Ok
- in patch 2/3 you add voltage_to_reg to MAX8997.
	==> Ok

Everything clear.

The consequence for me is that PATCH 3/3 shows the reason to add
voltage_to_reg(), and calls the new function pmic_vol_to_reg(), because
you need it, as you have already explained. But I see only
pmic_set_output() and pmic_reg_write() in your patch.

What have I not yet understood ? (maybe I need a coffe to wake up my
brain...)

Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function
  2012-03-28 12:50         ` Stefano Babic
@ 2012-03-28 13:13           ` Lukasz Majewski
  2012-03-28 14:43             ` Stefano Babic
  0 siblings, 1 reply; 11+ messages in thread
From: Lukasz Majewski @ 2012-03-28 13:13 UTC (permalink / raw)
  To: u-boot

On Wed, 28 Mar 2012 14:50:35 +0200
Stefano Babic <sbabic@denx.de> wrote:

> On 28/03/2012 14:38, Lukasz Majewski wrote:
> 
> > Hi Stefano,
> > 
> 
> Hi Lucasz,
> 
> > I've already forwarded those patches to you.
> > They are also available on the mailing list, so I don't know what
> > has happened.
> 
> Really nothing, I got all e-mails, I was only not able to explain my
> doubt. I try again:
> 
> - In patch 1/3 you add voltage_to_reg to the pmic struct
> 	==> Ok
> - in patch 2/3 you add voltage_to_reg to MAX8997.
> 	==> Ok
> 
> Everything clear.
> 
> The consequence for me is that PATCH 3/3 shows the reason to add
> voltage_to_reg(), and calls the new function pmic_vol_to_reg(),
> because you need it, as you have already explained. But I see only
> pmic_set_output() and pmic_reg_write() in your patch.
> 

> Stefano
> 

Hi Stefano,

I've looked on patches which I've posted and for patches from 1 do
3 there isn't usage for this function.

However I'm using this functionality in a code on which I'm working on
(Trats), so posting it to the list is only a matter of time.

> What have I not yet understood ? (maybe I need a coffe to wake up my
> brain...)
You understood everything :-), it was my fault.
I thought, that patches 2/3 and 3/3 were missing (or by some mishap I
didn't send them properly).

Now, I think, that everything is clear.
-- 
Best regards,

Lukasz Majewski

Samsung Poland R&D Center
Platform Group

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function
  2012-03-28 13:13           ` Lukasz Majewski
@ 2012-03-28 14:43             ` Stefano Babic
  2012-03-29  7:39               ` Lukasz Majewski
  0 siblings, 1 reply; 11+ messages in thread
From: Stefano Babic @ 2012-03-28 14:43 UTC (permalink / raw)
  To: u-boot

On 28/03/2012 15:13, Lukasz Majewski wrote:

> Hi Stefano,
> 

Hi Lucasz,

> I've looked on patches which I've posted and for patches from 1 do
> 3 there isn't usage for this function.
> 
> However I'm using this functionality in a code on which I'm working on
> (Trats), so posting it to the list is only a matter of time.

ok, understood. Then I will suggest you resubmit patches 1 and 2 with
your work on Trats, because the patches belong together and they should
be in the same patchset.

And Patch 3 can be already applied as it is, because it has no
dependecies with the other ones.

> Now, I think, that everything is clear.

Yes, everythg clear ;-)

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function
  2012-03-28 14:43             ` Stefano Babic
@ 2012-03-29  7:39               ` Lukasz Majewski
  0 siblings, 0 replies; 11+ messages in thread
From: Lukasz Majewski @ 2012-03-29  7:39 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

On Wed, 28 Mar 2012 16:43:51 +0200
Stefano Babic <sbabic@denx.de> wrote:

> ok, understood. Then I will suggest you resubmit patches 1 and 2 with
> your work on Trats, because the patches belong together and they
> should be in the same patchset.

Hmm, I'm not the only one who is working on this board. Moreover some
other targets are using this PMIC as well :-).

> And Patch 3 can be already applied as it is, because it has no
> dependecies with the other ones.

The patch 3/3 depends on patch 2, which defines data for MAX8997 PMIC.
And patch 2 depends on patch 1, since patch 1 provides:

+	int (*voltage_to_reg_conv) (int uV);

which function is defined in patch 2 :-).


-- 
Best regards,

Lukasz Majewski

Samsung Poland R&D Center
Platform Group

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-03-29  7:39 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-28  8:45 [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function Lukasz Majewski
2012-03-28  8:45 ` [U-Boot] [PATCH 2/3] misc:pmic:max8997 MAX8997 support for PMIC driver Lukasz Majewski
2012-03-28  8:45 ` [U-Boot] [PATCH 3/3] misc:pmic:samsung Convert TRATS target to use MAX8997 instead of MAX8998 Lukasz Majewski
2012-03-28 10:19   ` Minkyu Kang
2012-03-28 10:26 ` [U-Boot] [PATCH 1/3] misc:pmic: Support for voltage to register value conversion function Stefano Babic
2012-03-28 11:26   ` Lukasz Majewski
2012-03-28 11:41     ` Stefano Babic
     [not found]       ` <20120328143820.44ca652c@lmajewski.digital.local>
2012-03-28 12:50         ` Stefano Babic
2012-03-28 13:13           ` Lukasz Majewski
2012-03-28 14:43             ` Stefano Babic
2012-03-29  7:39               ` Lukasz Majewski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.