Inter-revision diff: cover letter

Comparing v1 (message) to v10 (message)

--- v1
+++ v10
@@ -1,34 +1,14 @@
 Patch series introducing support for ROHM BD70528 PMIC
-
-Please note that patch 2 breaks compilation without patches 3 and 4
 
 ROHM BD70528 is a programmable Power Management IC for battery
 powered 'ultra low power' systems like the pre-announced NXP
-i.MX7 ULP. This patch series introduces support for the PMIC.
-
-I send this a RFC now as I would like to receive comments from
-Lee, Mark and Stephen regarding splitting the existing
-include/linux/mfd/bd718x7.h into ROHM generic and chip specific
-portions. Benefit is that for example the clk sub-driver does
-not need to be aware of chip specific structure(s) (struct
-bd718x7 and struct bd70528) as it only needs to derefernce the
-generic struct rohm_regmap_dev. Thus same clk subdriver can
-support both the bd718x7 and bd70528 as long as MFD driver
-data has this generic structure in the beginning of allocated
-data. But knowing the bd718x7 driver is already in upstream,
-it might be good if this change went through single tree, right?
-
-Another 'RFC' item is 'main register support' for regmap-irq.
-This has been initially discussed with Mark in these mail threads
-
-Option 1
-https://lore.kernel.org/lkml/20181217185014.GH27909@sirena.org.uk/
-
-Option 2
-https://lore.kernel.org/lkml/20181218085803.GD2477@localhost.localdomain/
-
-But I think it is Ok to show it to wider audience with this real
-usage example.
+i.MX7 ULP. This patch series introduces support for the PMIC. Please
+note that this driver only supports HW setup where PMIC is connected
+to I2C on A7 core. The other scenario is to use M4 as a power manager
+and connect pmic to M4. On such setups the A7 can only access pmic
+via M4 core using RPMSG virtio. Such setup depends on RPMSG
+implementation on M4 core and is currently not supported by this
+patch series.
 
 RTC block of the bd70528 can support 'wake' irq which wakes PMIC
 from standby state. Wake irq's can be armed to wake up system up
@@ -45,96 +25,168 @@
 are used for I/O or interrupts and it is up-to driver user to
 ensure there is no misconfiguration or "double use".
 
-Currently only MFD core, clk, RTC and regulator portions are
-somehow tested. The RFC series also include initial gpio, power-supply
-and watchdog patches in order to provide better overview on chip
-and to collect initial feedback. Reset and ADC are not supported by
-this series.
+The power-supply patch included in series is only poorly tested as I
+lack of hardware with real battery connected. Reset and ADC are not
+supported by this series.
+
+Changelog v10:
+- Exported locking functions for RTC lock and as a result dropped hid
+  the struct bd70528 from sub-devices who no longer needed it.
+- removed linux/gpio.h header from GPIO driver.
+
+Changelog v9: Changes suggested by Lee Jones
+- MFD, DT-binding, RTC and WDT changed
+- DT-bindings: Spelling fixes
+- RTC and WDT: Use exported function instead of function pointer for WDT
+  arming/disarming
+- MFD: Export WDT arming/disarming function instead of providing a
+  pointer to it.
+- Various styling fixes.
+
+Changelog v8:
+- regulators(*), wdt, gpio, rtc, mfd(*) and dt-bindings unchanged.
+  (*)Patches 1-3 squashed to not break bisecting.
+
+- removed unnecessary newline from clk
+- fixed possible use of uninitialized 'reg' from power-supply.
+  Found by 0-day tests and reported by Dan Carpenter.
+
+Changelog v7:
+Only patch 2 changed.
+- Avoid out-of-array-bounds access at regulator probe if unsupported
+  chip type is passed to bd718x7 regulator driver.
+
+Changelog v6:
+Only patch 10 changed.
+- styling fixes pointed by Gunter Roeck
+- dropped RFC tag
+
+Changelog v5 (RFC):
+Only patch 7 changed.
+- Explained why lock is not needed at GPIO value getting
+- removed ampersands from function pointer assignments.
+
+Changelog v4 (RFC):
+patches 1,2,3,4,5,10 are unchanged from v3
+DT-binding fixes suggested by Rob Herring:
+- drop interrupt-parent
+- drop clock-frequency
+- change pmic node name to a generic one
+RTC:
+- enable RTC block's irqs before registering rtc
+GPIO fixes after initial testing:
+- fix getting GPIO value when direction is output
+POWER:
+- Add ASCII art intended to clarify the charger HW state machine
+
+Changelog v3 (RFC):
+patches 1,2,3,4,5,6,7,8 and 10 are unchanged from v2
+RTC fixups suggested by Guenter Roeck:
+- create bd70528_set_time_locked function in order to simplify
+  error handling and to make mutex lock/unlock path more obvious
+- don't ignore errors on bd70528_set_time_locked
+- simplify bd70528_read_alarm enabled condition setting
+- add __packed to structs where members are mapped to HW registers
+- remove unnecessary brackets from enable condition in set_wake
+RTC: fixups suggested by Alessandro Belloni
+- don't use deprecated devm_rtc_device_register
+- add alarm_irq_enable callback
+- add range_min and range_max
+WDT:
+- add regmap and mutex pointers to WDT data so that they can be accessed
+  without dereferencing the parent data
+- remove parent data pointer from WDT data
+- embed struct watchdog_device into WDT data in order to avoid double
+  allocation.
+GPIO:
+- remove unused header as pointed by Linus Walleij
+POWER:
+- do not copy the whole MFD data (especially the mutex to avoid
+  all possibilities of accidentally using the copy of a mutex)
+
+Changelog v2 (RFC): Mainly feedback from Guenter Roeck:
+- patches 1, 2, 3, 4, 5, 9 are unchanged.
+- mfd: own mutex for each bd70528 instance - embed in struct bd70528
+- watchdog: do not copy parent device data
+- watchdog: fix deadlock caused by double locked mutex
+- watchdog: set initial timeouts and WDT parent information
+- watchdog: remove unnecessary ping function from ops
+- watchdog: and the comment regarding it
+- watchdog: allocate watchdog struct in order to allow multiple WDG
+  instances
+- rtc: bd70528 fix the order of mutex unlock and re-enabling RTC based
+  timers
+- rtc: fix the irq mask register address
+- power: fix the irq mask register address
+- regulator/regmap-irq: Drop the patches 1, 8 and 9 from original series
+  as those were already applied by Mark 
 
 Patch 1:
-	regmap-irq, 'main status register support'. See discussion
-	https://lore.kernel.org/lkml/20181217185014.GH27909@sirena.org.uk/
+	split the bd718x7.h to generic and chip specific portions.
+	(breaks compilation without patch 2 and 3)
+	- adapt bd718x7.h changes to bd718x7 regulator driver
+	- adapt bd718x7.h changes to bd718x7 clk driver
 Patch 2:
-	split the bd718x7.h to generic and chip specific portions.
-	(breaks compilation without patch 3 and 4)
+	add MFD core support for bd70528
 Patch 3:
-	adapt bd718x7.h changes to bd718x7 regulator driver
+	support bd70528 clk using bd718x7 clk driver
 Patch 4:
-	adapt bd718x7.h changes to bd718x7 clk driver
+	document DT bindings for BD70528
 Patch 5:
-	add MFD core support for bd70528
+	support BD70528 GPIO block
 Patch 6:
-	support bd70528 clk using bd718x7 clk driver
+	support BD70528 RTC
 Patch 7:
-	document DT bindings for BD70528
+	support BD70528 battery charger
 Patch 8:
-	support bd70528 regulators
+	support BD70528 watchdog
 Patch 9:
-	document regulator DT bindings for BD70528
-Patch 10:
-	support BD70528 GPIO block
-Patch 11:
-	support BD70528 RTC
-Patch 12:
-	support BD70528 battery charger
-Patch 13:
-	support BD70528 watchdog
+	drop struct bd70528 from regulator
 
 This patch series is based on Mark's regulator/for-next branch
 
 ---
 
-Matti Vaittinen (13):
-  regmap: regmap-irq: Add main status register support
-  mfd: bd718x7.h split to ROHM common and bd718x7 specific parts
-  regulator: bd718x7 use chip specific and generic data structs
-  clk: bd718x7: use chip specific and generic data structs
+Matti Vaittinen (9):
+  mfd: regulator: clk: split rohm-bd718x7.h
   mfd: bd70528: Support ROHM bd70528 PMIC - core
   clk: bd718x7: Support ROHM BD70528 clk block
   devicetree: bindings: Document first ROHM BD70528 bindings
-  regulator: bd70528: Support ROHM BD70528 regulator block
-  devicetree: bindings: ROHM bd70528 regulator bindings
   gpio: Initial support for ROHM bd70528 GPIO block
   rtc: bd70528: Initial support for ROHM bd70528 RTC
   power: supply: Initial support for ROHM BD70528 PMIC charger block
   watchdog: bd70528: Initial support for ROHM BD70528 watchdog block
-
- .../devicetree/bindings/mfd/rohm,bd70528-pmic.txt  | 104 ++++
- .../bindings/regulator/rohm,bd70528-regulator.txt  |  68 +++
- drivers/base/regmap/regmap-irq.c                   |  99 ++-
+  regulator: bd70528: drop struct bd70528
+
+ .../devicetree/bindings/mfd/rohm,bd70528-pmic.txt  | 102 +++
  drivers/clk/Kconfig                                |   6 +-
- drivers/clk/clk-bd718x7.c                          |  25 +-
+ drivers/clk/clk-bd718x7.c                          |  24 +-
  drivers/gpio/Kconfig                               |  11 +
  drivers/gpio/Makefile                              |   1 +
- drivers/gpio/gpio-bd70528.c                        | 192 ++++++
+ drivers/gpio/gpio-bd70528.c                        | 231 +++++++
  drivers/mfd/Kconfig                                |  17 +
  drivers/mfd/Makefile                               |   1 +
- drivers/mfd/rohm-bd70528.c                         | 409 +++++++++++++
+ drivers/mfd/rohm-bd70528.c                         | 438 ++++++++++++
  drivers/mfd/rohm-bd718x7.c                         |  23 +-
  drivers/power/supply/Kconfig                       |   9 +
  drivers/power/supply/Makefile                      |   1 +
- drivers/power/supply/bd70528-charger.c             | 670 +++++++++++++++++++++
- drivers/regulator/Kconfig                          |  11 +
- drivers/regulator/Makefile                         |   1 +
- drivers/regulator/bd70528-regulator.c              | 290 +++++++++
- drivers/regulator/bd718x7-regulator.c              |  22 +-
+ drivers/power/supply/bd70528-charger.c             | 745 +++++++++++++++++++++
+ drivers/regulator/bd70528-regulator.c              |   4 +-
+ drivers/regulator/bd718x7-regulator.c              |  24 +-
  drivers/rtc/Kconfig                                |   8 +
  drivers/rtc/Makefile                               |   1 +
- drivers/rtc/rtc-bd70528.c                          | 439 ++++++++++++++
+ drivers/rtc/rtc-bd70528.c                          | 500 ++++++++++++++
  drivers/watchdog/Kconfig                           |  12 +
  drivers/watchdog/Makefile                          |   1 +
- drivers/watchdog/bd70528_wdt.c                     | 161 +++++
- include/linux/mfd/rohm-bd70528.h                   | 392 ++++++++++++
+ drivers/watchdog/bd70528_wdt.c                     | 187 ++++++
+ include/linux/mfd/rohm-bd70528.h                   | 383 +++++++++++
  include/linux/mfd/rohm-bd718x7.h                   |  22 +-
  include/linux/mfd/rohm-generic.h                   |  20 +
- include/linux/regmap.h                             |  31 +
- 29 files changed, 2998 insertions(+), 49 deletions(-)
+ 24 files changed, 2723 insertions(+), 48 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/mfd/rohm,bd70528-pmic.txt
- create mode 100644 Documentation/devicetree/bindings/regulator/rohm,bd70528-regulator.txt
  create mode 100644 drivers/gpio/gpio-bd70528.c
  create mode 100644 drivers/mfd/rohm-bd70528.c
  create mode 100644 drivers/power/supply/bd70528-charger.c
- create mode 100644 drivers/regulator/bd70528-regulator.c
  create mode 100644 drivers/rtc/rtc-bd70528.c
  create mode 100644 drivers/watchdog/bd70528_wdt.c
  create mode 100644 include/linux/mfd/rohm-bd70528.h
@@ -145,7 +197,10 @@
 
 
 -- 
-Matti Vaittinen
-ROHM Semiconductors
+Matti Vaittinen, Linux device drivers
+ROHM Semiconductors, Finland SWDC
+Kiviharjunlenkki 1E
+90220 OULU
+FINLAND
 
 ~~~ "I don't think so," said Rene Descartes.  Just then, he vanished ~~~
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help