Dear all, I'd like to propose a new approach for PMIC generic driver.
In my opinion following issues needs discussion: 1. In proposed int pmic_reg_read(struct pmic *p, u32 *val) the val is returned by pointer. Now at fsl_pmic.c read value is returned by return clause. I think, that passing pointer is a better approach,since errors from i2c_read/spi_read can be caught in upper layers. 2. Since I haven't got a chance to test SPI part of the fsl_pmic.c driver, I've focused mainly on I2C and place stubs for SPI. 3. Suggestions for struct pmic's additional fields for SPI are more than welcome :-) 4. Now the pmic_core.c file consist of #ifdef PMIC_I2C {Code for handling I2C} #else {Code for handling SPI} #endif The same approach is used at fsl_pmic.c I'm wondering if this approach shouldn't be replaced with on-time checking if SPI or I2C interface is available. This check can be performed by: struct pmic *p; if (p->interface == PMIC_I2C) { } else { } It would allow to remove obscure #ifdefs, but on the other hand it will reduce execution speed of the driver. Thanks in advance, Lukasz Lukasz Majewski (2): misc:pmic New generic pmic driver misc:pmic:max8998: Support for max8998 pmic arch/arm/lib/board.c | 5 + board/samsung/goni/goni.c | 18 ++++ drivers/misc/Makefile | 1 + drivers/misc/pmic_core.c | 236 ++++++++++++++++++++++++++++++++++++++++++++ include/configs/s5p_goni.h | 3 + include/max8998_pmic.h | 84 ++++++++++++++++ include/pmic.h | 60 +++++++++++ 7 files changed, 407 insertions(+), 0 deletions(-) create mode 100644 drivers/misc/pmic_core.c create mode 100644 include/max8998_pmic.h create mode 100644 include/pmic.h -- 1.7.2.3 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot