diff options
| author | Amaury Pouly <amaury.pouly@gmail.com> | 2014-05-05 23:17:41 +0200 |
|---|---|---|
| committer | Amaury Pouly <amaury.pouly@gmail.com> | 2014-05-11 19:56:15 +0200 |
| commit | d8071221c5a91fa51f75db9d7a53f1a82a78ffe4 (patch) | |
| tree | cc16197e41197666daf76681b8faf97776fd78d8 /utils/hwstub/tools/lua/pp/gpio.lua | |
| parent | 5b89e6618f023b46be1dc91ba4eab46e78bc7121 (diff) | |
| download | rockbox-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.lua | 65 |
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 |