require"pins"
module(...,package.seeall)

--[[
Ҫ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ʹĳЩGPIOʱڽűдGPIOĵѹõѹȼЩGPIO
GPIOʹǰ(ļpins.regǰ)pmd.ldoset(ѹȼ,ѹ)
ѹȼӦĵѹ£
0--------ر
1--------1.8V
2--------1.9V
3--------2.0V
4--------2.6V
5--------2.8V
6--------3.0V
7--------3.3V
IOΪʱߵƽʱѹΪõĵѹȼӦĵѹ
IOΪжʱĸߵƽѹõĵѹȼĵѹƥ

ѹƵGPIOĶӦϵ£
pmd.LDO_VMMCGPIO8GPIO9GPIO10GPIO11GPIO12GPIO13
pmd.LDO_VLCDGPIO14GPIO15GPIO16GPIO17GPIO18
pmd.LDO_VCAMGPIO19GPIO20GPIO21GPIO22GPIO23GPIO24
һĳһѹĵѹȼܸõѹƵGPIOĸߵƽõĵѹȼһ

磺GPIO8ƽʱҪ2.8Vpmd.ldoset(5,pmd.LDO_VMMC)
]]

--˿ԴģпGPIOţÿֻʾҪ
--ûԼ޸
--ģGPIO֧ж

--pinֵ£
--pio.P0_XXʾGPIOXXɱʾGPIO 0  GPIO 31pio.P0_15ʾGPIO15
--pio.P1_XXʾGPIO(XX+32)ɱʾGPIO 32ϵGPIOpio.P1_2ʾGPIO34

--dirֵ£ĬֵΪpio.OUTPUT
--pio.OUTPUTʾʼ͵ƽ
--pio.OUTPUT1ʾʼߵƽ
--pio.INPUTʾ룬Ҫѯĵƽ״̬
--pio.INTʾжϣƽ״̬仯ʱϱϢ뱾ģintmsg

--validֵ£ĬֵΪ1
--validֵpins.luaеsetgetӿʹ
--dirΪʱpins.setӿʹãpins.setĵһΪtruevalidֵʾĵƽ0ʾ͵ƽ1ʾߵƽ
--dirΪжʱgetӿʹãŵĵƽvalidֵһ£getӿڷtrue򷵻false
--dirΪжʱcbΪжŵĻصжϲʱcbcbжϵĵƽvalidֵͬcb(true)cb(false)

--ȼPIN8 = {pin=pio.P0_1,dir=pio.OUTPUT,valid=1}
--8ţGPIO_1Ϊʼ͵ƽvalid=1pins.set(true,PIN8),ߵƽpins.set(false,PIN8),͵ƽ
PIN8 = {pin=pio.P0_1}

--9ţGPIO_0Ϊʼߵƽvalid=0pins.set(true,PIN9),͵ƽpins.set(false,PIN9),ߵƽ
PIN9 = {pin=pio.P0_0,dir=pio.OUTPUT1,valid=0}

--úPIN8
PIN6 = {pin=pio.P0_3}
PIN7 = {pin=pio.P0_2}
PIN12 = {pin=pio.P0_29}
PIN10 = {pin=pio.P0_31}
PIN11 = {pin=pio.P0_30}
--PIN27 = {pin=pio.P0_4}
PIN30 = {pin=pio.P0_7}
PIN2 = {pin=pio.P0_10}
PIN3 = {pin=pio.P0_8}
PIN4 = {pin=pio.P0_11}
PIN5 = {pin=pio.P0_12}


local function pin29cb(v)
	print("pin29cb",v)
end
--29ţGPIO_6Ϊжϣvalid=1
--intcbʾжϹܽŵжϴжʱΪߵƽصintcb(true)Ϊ͵ƽصintcb(false)
--pins.get(PIN29)ʱΪߵƽ򷵻trueΪ͵ƽ򷵻false
PIN29 = {pin=pio.P0_6,dir=pio.INT,valid=1,intcb=pin29cb}


local function pin27cb(v)
	print("pin27cb",v)
end
PIN27 = {pin=pio.P0_4,dir=pio.INT,valid=1,intcb=pin27cb}


--28ţGPIO_5Ϊ룻valid=0
--pins.get(PIN28)ʱΪߵƽ򷵻falseΪ͵ƽ򷵻true
PIN28 = {pin=pio.P0_5,dir=pio.INPUT,valid=0}

--GPIO8GPIO9GPIO10GPIO11GPIO12GPIO13ĸߵƽѹΪ2.8V
pmd.ldoset(5,pmd.LDO_VMMC)
pins.reg(PIN8,PIN9,PIN6,PIN7,PIN12,PIN10,PIN11,PIN27,PIN28,PIN30,PIN2,PIN3,PIN4,PIN29,PIN5)
