mirror of
https://github.com/AsahiLinux/m1n1
synced 2024-12-23 20:13:06 +00:00
3d523f27ad
Signed-off-by: Hector Martin <marcan@marcan.st>
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
# SPDX-License-Identifier: MIT
|
|
|
|
from m1n1.trace.i2c import I2CTracer
|
|
|
|
I2CTracer = I2CTracer._reloadcls()
|
|
|
|
i2c_tracers = {}
|
|
|
|
for node in hv.adt["/arm-io"]:
|
|
if node.name.startswith("i2c"):
|
|
n = int(node.name[3:])
|
|
i2c_tracers[n] = I2CTracer(hv, f"/arm-io/i2c{n}", verbose=0)
|
|
i2c_tracers[n].stop()
|
|
i2c_tracers[n].start()
|
|
if hv.ctx:
|
|
for irq in getattr(node, "interrupts"):
|
|
hv.trace_irq(node.name, irq, 1, hv.IRQTRACE_IRQ)
|
|
|
|
from m1n1.gpiola import GPIOLogicAnalyzer
|
|
|
|
if not hv.started:
|
|
for cpu in list(hv.adt["cpus"]):
|
|
if cpu.name == "cpu3":
|
|
print(f"Removing ADT node {cpu._path}")
|
|
del hv.adt["cpus"][cpu.name]
|
|
|
|
if not hv.started or hv.ctx is not None:
|
|
m = GPIOLogicAnalyzer(u, "arm-io/gpio",
|
|
pins={"scl": 0xc9, "sda": 0xc7},
|
|
div=1, on_pin_change=True, cpu=3)
|
|
|
|
m.load_regmap(list(i2c_tracers[1].regmaps.values())[0],
|
|
regs={"SMSTA", "XFSTA"})
|
|
|
|
def start_la():
|
|
m.start(1000000, bufsize=0x80000)
|
|
hv.cont()
|
|
|
|
def stop_la():
|
|
m.complete()
|
|
m.show()
|