From d8071221c5a91fa51f75db9d7a53f1a82a78ffe4 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Mon, 5 May 2014 23:17:41 +0200 Subject: hwstub: add some PP and Sansa View code Change-Id: If188a01adee2a0e1c7a46c424a0a9cde9f666831 --- utils/hwstub/tools/lua/pp/gpio.lua | 65 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 utils/hwstub/tools/lua/pp/gpio.lua (limited to 'utils/hwstub/tools/lua/pp/gpio.lua') 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 -- cgit v1.1