@@ -507,7 +507,26 @@ def print_key_value(k, v, tabstop):
507507
508508 return
509509
510- def generate_include_file (defs , fixup ):
510+ def generate_keyvalue_file (defs , args ):
511+ compatible = reduced ['/' ]['props' ]['compatible' ][0 ]
512+
513+ node_keys = sorted (defs .keys ())
514+ for node in node_keys :
515+ sys .stdout .write ('# ' + node .split ('/' )[- 1 ] )
516+ sys .stdout .write ("\n " )
517+
518+ prop_keys = sorted (defs [node ].keys ())
519+ for prop in prop_keys :
520+ if prop == 'aliases' :
521+ for entry in sorted (defs [node ][prop ]):
522+ a = defs [node ][prop ].get (entry )
523+ sys .stdout .write ("%s=%s\n " % (entry , defs [node ].get (a )))
524+ else :
525+ sys .stdout .write ("%s=%s\n " % (prop ,defs [node ].get (prop )))
526+
527+ sys .stdout .write ("\n " )
528+
529+ def generate_include_file (defs , args ):
511530 compatible = reduced ['/' ]['props' ]['compatible' ][0 ]
512531
513532 sys .stdout .write ("/**************************************************\n " )
@@ -538,31 +557,36 @@ def generate_include_file(defs, fixup):
538557 for prop in prop_keys :
539558 if prop == 'aliases' :
540559 for entry in sorted (defs [node ][prop ]):
541- print_key_value (entry , defs [node ][prop ].get (entry ), maxtabstop )
560+ a = defs [node ][prop ].get (entry )
561+ print_key_value (entry , a , maxtabstop )
542562 else :
543563 print_key_value (prop , defs [node ].get (prop ), maxtabstop )
564+
544565 sys .stdout .write ("\n " )
545566
546- if fixup and os .path .exists (fixup ):
567+ if args . fixup and os .path .exists (args . fixup ):
547568 sys .stdout .write ("\n " )
548569 sys .stdout .write ("/* Following definitions fixup the generated include */\n " )
549570 try :
550- with open (fixup , "r" ) as fd :
571+ with open (args . fixup , "r" ) as fd :
551572 for line in fd .readlines ():
552573 sys .stdout .write (line )
553574 sys .stdout .write ("\n " )
554575 except :
555- raise Exception ("Input file " + os .path .abspath (fixup ) + " does not exist." )
576+ raise Exception ("Input file " + os .path .abspath (args . fixup ) + " does not exist." )
556577
557578 sys .stdout .write ("#endif\n " )
558579
559580def parse_arguments ():
560581
561582 parser = argparse .ArgumentParser (description = __doc__ ,
562583 formatter_class = argparse .RawDescriptionHelpFormatter )
584+
563585 parser .add_argument ("-d" , "--dts" , help = "DTS file" )
564586 parser .add_argument ("-y" , "--yaml" , help = "YAML file" )
565587 parser .add_argument ("-f" , "--fixup" , help = "Fixup file" )
588+ parser .add_argument ("-k" , "--keyvalue" , action = "store_true" ,
589+ help = "Generate file to be included by the build system" )
566590
567591 return parser .parse_args ()
568592
@@ -654,7 +678,10 @@ def main():
654678 extract_reg_prop (chosen ['zephyr,sram' ], None , defs , "CONFIG_SRAM" , 1024 )
655679
656680 # generate include file
657- generate_include_file (defs , args .fixup )
681+ if args .keyvalue :
682+ generate_keyvalue_file (defs , args )
683+ else :
684+ generate_include_file (defs , args )
658685
659686if __name__ == '__main__' :
660687 main ()
0 commit comments