path: root/utils/hwstub/tools/lua/stmp.lua
diff options
authorAmaury Pouly <>2016-02-07 21:46:58 +0000
committerAmaury Pouly <>2016-04-08 19:38:18 +0200
commitf6c61eb11a13f7a5141a980f56b9a14b3309c449 (patch)
treed1c4a4d992f88e40eacb65d5e046b595fdcb512a /utils/hwstub/tools/lua/stmp.lua
parenta2f4c5201d78b9f351834b0512623eeac622280f (diff)
hwstub: port hwstub_shell to the new library
Also use this opportunity to cleanup support for multiple devices: the shell now supports dynamic changes in the device and will call init() everytime a new device is selected, to prepare a new environment. The shell now honors register width on register read/write. The shell also provides access to variants as follows by creating a subtable under the register using the variant type in UPPER case and having the same layout as a register. For example if register HW.GPIO.DIR has variants "set" and "clr", those can be used like this: HW.GPIO.DIR.SET.write(0xff) HW.GPIO.DIR.CLR.write(0xff00) Change-Id: I943947fa98bce875de0cba4338e8b7196a4c1165
Diffstat (limited to 'utils/hwstub/tools/lua/stmp.lua')
1 files changed, 21 insertions, 21 deletions
diff --git a/utils/hwstub/tools/lua/stmp.lua b/utils/hwstub/tools/lua/stmp.lua
index 807c18df8d..ea1cde9c6d 100644
--- a/utils/hwstub/tools/lua/stmp.lua
+++ b/utils/hwstub/tools/lua/stmp.lua
@@ -1,7 +1,6 @@
--- Chip Identification
STMP = { info = {} }
local h = HELP:create_topic("STMP")
@@ -49,18 +48,6 @@ function STMP.is_stmp3600()
return >= 0x3600 and < 0x3700
-if STMP.is_imx233() then
- identify("STMP3780 (aka i.MX233)", "imx233", "imx233")
-elseif STMP.is_stmp3700() then
- identify("STMP3700", "stmp3700", "stmp3700")
-elseif STMP.is_stmp3770() then
- identify("STMP3770", "stmp3770", "stmp3700")
-elseif STMP.is_stmp3600() then
- identify("STMP3600", "stmp3600", "stmp3600")
- print(string.format("Unable to identify this chip as a STMP: chipid=0x%x",;
hh = h:create_topic("debug")
hh:add("STMP.debug(...) prints some debug output if STMP.debug_on is true and does nothing otherwise.")
@@ -70,11 +57,24 @@ function STMP.debug(...)
if STMP.debug_on then print(...) end
-if ~= nil then
- require "stmp/digctl"
- require "stmp/pinctrl"
- require "stmp/lcdif"
- require "stmp/pwm"
- require "stmp/clkctrl"
- require "stmp/i2c"
-end \ No newline at end of file
+-- init
+function STMP.init()
+ if STMP.is_imx233() then
+ identify("STMP3780 (aka i.MX233)", "imx233", "imx233")
+ elseif STMP.is_stmp3700() then
+ identify("STMP3700", "stmp3700", "stmp3700")
+ elseif STMP.is_stmp3770() then
+ identify("STMP3770", "stmp3770", "stmp3700")
+ elseif STMP.is_stmp3600() then
+ identify("STMP3600", "stmp3600", "stmp3600")
+ else
+ print(string.format("Unable to identify this chip as a STMP: chipid=0x%x",;
+ end
+require "stmp/digctl"
+require "stmp/pinctrl"
+require "stmp/lcdif"
+require "stmp/pwm"
+require "stmp/clkctrl"
+require "stmp/i2c" \ No newline at end of file