PowerObj.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #! /usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. import sys,os
  4. import re
  5. import string
  6. import ConfigParser
  7. import xml.dom.minidom
  8. import ChipObj
  9. from data.PowerData import PowerData
  10. from utility.util import log
  11. from utility.util import LogLevel
  12. from utility.util import sorted_key
  13. from ModuleObj import ModuleObj
  14. class PowerObj(ModuleObj):
  15. def __init__(self):
  16. ModuleObj.__init__(self, 'cust_power.h', 'cust_power.dtsi')
  17. self.__list = {}
  18. def getCfgInfo(self):
  19. cp = ConfigParser.ConfigParser(allow_no_value=True)
  20. cp.read(ModuleObj.get_figPath())
  21. self.__list = cp.options('POWER')
  22. self.__list = self.__list[1:]
  23. self.__list = sorted(self.__list)
  24. def read(self, node):
  25. nodes = node.childNodes
  26. for node in nodes:
  27. if node.nodeType == xml.dom.Node.ELEMENT_NODE:
  28. if node.nodeName == 'count':
  29. continue
  30. varNode = node.getElementsByTagName('varName')
  31. data = PowerData()
  32. data.set_varName(varNode[0].childNodes[0].nodeValue)
  33. ModuleObj.set_data(self, node.nodeName, data)
  34. return True
  35. def parse(self, node):
  36. self.getCfgInfo()
  37. self.read(node)
  38. def gen_files(self):
  39. ModuleObj.gen_files(self)
  40. def gen_spec(self, para):
  41. if re.match(r'.*_h$', para):
  42. self.gen_hFile()
  43. # power module has no DTSI file
  44. def gen_dtsiFile(self):
  45. pass
  46. def fill_hFile(self):
  47. gen_str = ''
  48. for key in sorted_key(ModuleObj.get_data(self).keys()):
  49. value = ModuleObj.get_data(self)[key]
  50. if value.get_varName() == '':
  51. continue
  52. idx = string.atoi(key[5:])
  53. name = self.__list[idx]
  54. gen_str += '''#define GPIO_%s\t\tGPIO_%s\n''' %(name.upper(), value.get_varName())
  55. return gen_str
  56. def fill_dtsiFile(self):
  57. return ''