@@ -70,25 +70,17 @@ def prepare(module, options):
7070 return False
7171 global props
7272 props = {}
73- driver = device .get_driver ("adc" )
7473 props ["target" ] = target = device .identifier
75- props ["driver" ] = driver
7674 props ["instances" ] = []
7775
78- if target ["family" ] in ["f2" , "f4" , "f7" ]:
79- props ["shared_irqs" ] = {"ADC" : listify (device .get_driver ("adc" )["instance" ])}
80- props ["shared_irq_ids" ] = props ["shared_irqs" ]["ADC" ]
76+ if target ["family" ] in ["f2" , "f4" , "f7" , "l1" , "f1" ]:
77+ irq_name = next (device .core .vectors (lambda v : v .startswith ("ADC" )), "ADC" )
78+ instances = [i .number for i in device .driver ("adc" ).instances ()]
79+ props ["shared_irqs" ] = {irq_name : instances }
80+ props ["shared_irq_ids" ] = instances
8181 else :
82- shared_irqs = [v ["name" ] for v in device .get_driver ("core" )["vector" ]]
83- shared_irqs = [v for v in shared_irqs if v .startswith ("ADC" ) and "_" in v ]
84- props ["shared_irqs" ] = {}
85- props ["shared_irq_ids" ] = []
86- for irq in shared_irqs :
87- parts = irq [3 :].split ("_" )
88- shared_irqs_ids = (int (parts [0 ]), int (parts [1 ]) )
89- props ["shared_irqs" ][irq ] = shared_irqs_ids
90- props ["shared_irq_ids" ].extend (shared_irqs_ids )
91-
82+ props ["shared_irqs" ] = device .core .shared_irqs ("ADC" )
83+ props ["shared_irq_ids" ] = list (props ["shared_irqs" ].values ())[0 ]
9284
9385 module .depends (
9486 ":architecture:adc" ,
@@ -99,21 +91,18 @@ def prepare(module, options):
9991 ":math:algorithm" ,
10092 ":utils" )
10193
102- for instance in listify ( device .get_driver ("adc" ).get ( "instance" , []) ):
103- module .add_submodule (Instance (int ( instance ) ))
94+ for instance in device .driver ("adc" ).instances ( ):
95+ module .add_submodule (Instance (instance . number ))
10496
10597 return True
10698
10799def build (env ):
108100 device = env [":target" ]
109- driver = device .get_driver ("adc" )
110-
111101 global props
112-
113102 env .substitutions = props
114103 env .outbasepath = "modm/src/modm/platform/adc"
115104
116- if device .get_driver ("adc" ).get ( "instance" , None ) is None :
105+ if not device .driver ("adc" ).instances () :
117106 Instance (None ).build (env )
118107
119108 if any (i in props ["shared_irq_ids" ] for i in props ["instances" ]):
0 commit comments