summaryrefslogtreecommitdiff
path: root/utils/hwstub/tools/lua/pp/gpio.lua
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2014-05-05 23:17:41 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2014-05-11 19:56:15 +0200
commitd8071221c5a91fa51f75db9d7a53f1a82a78ffe4 (patch)
treecc16197e41197666daf76681b8faf97776fd78d8 /utils/hwstub/tools/lua/pp/gpio.lua
parent5b89e6618f023b46be1dc91ba4eab46e78bc7121 (diff)
downloadrockbox-d8071221c5a91fa51f75db9d7a53f1a82a78ffe4.zip
rockbox-d8071221c5a91fa51f75db9d7a53f1a82a78ffe4.tar.gz
rockbox-d8071221c5a91fa51f75db9d7a53f1a82a78ffe4.tar.bz2
rockbox-d8071221c5a91fa51f75db9d7a53f1a82a78ffe4.tar.xz
hwstub: add some PP and Sansa View code
Change-Id: If188a01adee2a0e1c7a46c424a0a9cde9f666831
Diffstat (limited to 'utils/hwstub/tools/lua/pp/gpio.lua')
-rw-r--r--utils/hwstub/tools/lua/pp/gpio.lua65
1 files changed, 65 insertions, 0 deletions
diff --git a/utils/hwstub/tools/lua/pp/gpio.lua b/utils/hwstub/tools/lua/pp/gpio.lua
new file mode 100644
index 0000000..612c980
--- /dev/null
+++ b/utils/hwstub/tools/lua/pp/gpio.lua
@@ -0,0 +1,65 @@
+---
+--- GPIO
+---
+PP.gpio = {}
+
+local h = HELP:get_topic("PP"):create_topic("gpio")
+h:add("TODO")
+
+local hh = h:create_topic("pin")
+hh:add("TODO")
+
+function PP.gpio.pin(bank,pin)
+ if type(bank) == "string" then
+ if string.len(bank) ~= 1 then
+ error("Invalid bank " .. bank)
+ end
+ bank = string.byte(bank)
+ if bank < string.byte("A") or bank > string.byte("Z") then
+ error("Invalid bank " .. bank)
+ end
+ bank = bank - string.byte("A")
+ end
+ if pin < 0 or pin >= 8 then
+ error("invalid pin " .. pin)
+ end
+ PP.debug(string.format("gpio: get pin B%dP%d", bank, pin))
+ local t = {
+ read = function()
+ return bit32.extract(HW.GPIO.INPUT_VALn[bank].read(), pin)
+ end,
+
+ write = function(val)
+ local v = HW.GPIO.OUTPUT_VALn[bank].read()
+ v = bit32.replace(v, val and 1 or 0, pin)
+ HW.GPIO.OUTPUT_VALn[bank].write(v)
+ end,
+
+ enable = function(val)
+ if val == nil then
+ val = false
+ end
+ local v = HW.GPIO.ENABLEn[bank].read()
+ v = bit32.replace(v, val and 1 or 0, pin)
+ HW.GPIO.ENABLEn[bank].write(v)
+ end,
+
+ output_enable = function(val)
+ if val == nil then
+ val = false
+ end
+ local v = HW.GPIO.OUTPUT_ENn[bank].read()
+ v = bit32.replace(v, val and 1 or 0, pin)
+ HW.GPIO.OUTPUT_ENn[bank].write(v)
+ end,
+
+ muxsel = function(x)
+
+ end,
+
+ pull = function(val)
+
+ end,
+ }
+ return t
+end