summaryrefslogtreecommitdiff
path: root/utils/hwstub/tools/lua/stmp/i2c.lua
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-10-22 00:24:32 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-10-22 00:34:44 +0200
commit9ed980785429db35f51f8d324cc75c23f2e5fb20 (patch)
treeaa5362c4eea139c22b606b685e2ab29a19908d0d /utils/hwstub/tools/lua/stmp/i2c.lua
parentbfb67f41a9e9df3b730d34041be6b4f4a4983c5b (diff)
downloadrockbox-9ed980785429db35f51f8d324cc75c23f2e5fb20.tar.gz
rockbox-9ed980785429db35f51f8d324cc75c23f2e5fb20.zip
hwstub: rework i2c completely
Change-Id: I1e5f87f15f0ca9586d8185316ffcaeef6d9d4d38
Diffstat (limited to 'utils/hwstub/tools/lua/stmp/i2c.lua')
-rw-r--r--utils/hwstub/tools/lua/stmp/i2c.lua13
1 files changed, 7 insertions, 6 deletions
diff --git a/utils/hwstub/tools/lua/stmp/i2c.lua b/utils/hwstub/tools/lua/stmp/i2c.lua
index 54d860e0df..209f1df4e2 100644
--- a/utils/hwstub/tools/lua/stmp/i2c.lua
+++ b/utils/hwstub/tools/lua/stmp/i2c.lua
@@ -8,10 +8,7 @@ h:add("The STMP.clkctrl table handles the i2c device for all STMPs.")
8 8
9function STMP.i2c.init() 9function STMP.i2c.init()
10 HW.I2C.CTRL0.SFTRST.set() 10 HW.I2C.CTRL0.SFTRST.set()
11 STMP.pinctrl.pin(0, 30).muxsel("MAIN") 11 STMP.pinctrl.i2c.setup()
12 STMP.pinctrl.pin(0, 30).pull(true)
13 STMP.pinctrl.pin(0, 31).muxsel("MAIN")
14 STMP.pinctrl.pin(0, 31).pull(true)
15 STMP.i2c.reset() 12 STMP.i2c.reset()
16 STMP.i2c.set_speed(true) 13 STMP.i2c.set_speed(true)
17end 14end
@@ -21,7 +18,9 @@ function STMP.i2c.reset()
21 HW.I2C.CTRL0.SFTRST.clr() 18 HW.I2C.CTRL0.SFTRST.clr()
22 HW.I2C.CTRL0.CLKGATE.clr() 19 HW.I2C.CTRL0.CLKGATE.clr()
23 -- errata for IMX233 20 -- errata for IMX233
24 HW.I2C.CTRL1.ACK_MODE.set(); 21 if STMP.is_imx233() then
22 HW.I2C.CTRL1.ACK_MODE.set();
23 end
25end 24end
26 25
27function STMP.i2c.set_speed(fast) 26function STMP.i2c.set_speed(fast)
@@ -63,7 +62,9 @@ function STMP.i2c.transmit(slave_addr, buffer, send_stop)
63 while HW.I2C.CTRL0.RUN.read() == 1 do 62 while HW.I2C.CTRL0.RUN.read() == 1 do
64 end 63 end
65 if HW.I2C.CTRL1.NO_SLAVE_ACK_IRQ.read() == 1 then 64 if HW.I2C.CTRL1.NO_SLAVE_ACK_IRQ.read() == 1 then
66 HW.I2C.CTRL1.CLR_GOT_A_NAK.set() 65 if STMP.is_imx233() then
66 HW.I2C.CTRL1.CLR_GOT_A_NAK.set()
67 end
67 STMP.i2c.reset() 68 STMP.i2c.reset()
68 return false 69 return false
69 end 70 end