From: Eric van Tassell <evt@evtM17x.(none)>
Since my first attempt at doing this by analogy to what's already in powerdebug(tree of sysfs files) was rejected because reviewers didn't want to add a bunch more OMAP specific files to sysfs, I rewrote things in userland.
There are a few basic chunks to the changes:
1) Add code to parse a CSV-like config file that defines a heirarchy of whatever form you want where the leaves are fields in mmio registers. Include decoders for the field values something easy to read (ex: "off" instead of 0)
2) A code to build a tree that the powerdebug framework walks from a CSV config file
3) A small bit of code to read the mmio regs via /dev/mem
4) One example config file each for Power & Voltage Domains.
It's all tested on OMAP4430(panda) but the config file mechanism is completely general.
Eric van Tassell (7): - add config files to define selected power domain and voltage domain registers for OMAP4430 add delimi.* to parse config files with clone of strchrnul
- add support for reading memory mapped I/O registers via /dev/mem
- add support to display fields of memory mapped I/O registers with optional value decoding as defined by config files
- largest commit of this series. Provide an instance of the tree abstraction used by powerdebug core that is built by parsing a config file instead of walking a debugfs tree as, for example, the sensor functionality does
- add display options for Voltage and Power domains - enable extended display function call
- add options for power and voltage domains - call tree_mgr_new to create the objects that implement them
- cleanup
Android.mk | 4 +- Makefile | 4 +- delimi.c | 106 +++++++++++++++++++ delimi.h | 30 ++++++ dirtree.c | 149 +++++++++++++++++++++++++++ dirtree.h | 22 ++++ display.c | 30 +++++- display.h | 4 +- mainloop.c | 2 + mmioreg.c | 77 ++++++++++++++ mmioreg.h | 27 +++++ powerdebug.c | 56 +++++++++-- pwrdm.regdefs.omap4 | 33 ++++++ regfield.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++ regfield.h | 52 ++++++++++ tree.c | 28 ++++++ tree.h | 11 +- tree_mgr.c | 203 +++++++++++++++++++++++++++++++++++++ tree_mgr.h | 25 +++++ utils.c | 69 +++++++++++++ utils.h | 15 ++- vdd.regdefs.omap4 | 68 +++++++++++++ 22 files changed, 1275 insertions(+), 19 deletions(-) create mode 100644 delimi.c create mode 100644 delimi.h create mode 100644 dirtree.c create mode 100644 dirtree.h create mode 100644 mmioreg.c create mode 100644 mmioreg.h create mode 100644 pwrdm.regdefs.omap4 create mode 100644 regfield.c create mode 100644 regfield.h create mode 100644 tree_mgr.c create mode 100644 tree_mgr.h create mode 100644 vdd.regdefs.omap4