add generate_csr_locations
This commit is contained in:
parent
49c50cbe07
commit
6cbc83f1ab
|
@ -8,3 +8,6 @@ clean:
|
|||
overlay.dts overlay.config: csr.json litex_json2dts_zephyr.py
|
||||
# NOTE: Broken in LiteX 2022.4.
|
||||
$(DEVICETREE_GEN_DIR)/litex_json2dts_zephyr.py --dts overlay.dts --config overlay.config csr.json
|
||||
|
||||
pin_io.h: csr.json generate_csr_locations.py
|
||||
python3 generate_csr_locations.py > pin_io.h
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
#!/usr/bin/python3
|
||||
import json
|
||||
|
||||
reg_names = {
|
||||
"adc" : ("conv", "sck", "sdo"),
|
||||
"dac" : ("miso", "ctrl")
|
||||
}
|
||||
max_num = 8
|
||||
|
||||
def get_reg(j, name, num, pos):
|
||||
return j["csr_registers"][f"{name}{num}_{pos}"]["addr"]
|
||||
|
||||
j = json.load(open("csr.json"))
|
||||
|
||||
print('''#pragma once
|
||||
typedef volatile uint32_t *csr_t;
|
||||
''')
|
||||
|
||||
for conv in iter(reg_names):
|
||||
for reg in reg_names[conv]:
|
||||
print(f"const csr_t {conv}_{reg}[{max_num}] =", "{")
|
||||
for i in range(0,max_num):
|
||||
print("\t", get_reg(j, conv, i, reg), end='')
|
||||
if i != max_num - 1:
|
||||
print(",")
|
||||
print("\n};")
|
Loading…
Reference in New Issue