summaryrefslogtreecommitdiff
path: root/utils/hwstub/tools/lua/stmp/i2c.lua
diff options
context:
space:
mode:
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