You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.4 KiB
85 lines
2.4 KiB
#! /usr/bin/python |
|
# -*- coding: utf-8 -*- |
|
|
|
# Copyright (C) 2016 MediaTek Inc. |
|
# |
|
# This program is free software; you can redistribute it and/or modify |
|
# it under the terms of the GNU General Public License version 2 as |
|
# published by the Free Software Foundation. |
|
# |
|
# This program is distributed in the hope that it will be useful, |
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|
# See http://www.gnu.org/licenses/gpl-2.0.html for more details. |
|
|
|
import sys,os |
|
import re |
|
import string |
|
import ConfigParser |
|
import xml.dom.minidom |
|
|
|
import ChipObj |
|
from data.PowerData import PowerData |
|
from utility.util import log |
|
from utility.util import LogLevel |
|
from utility.util import sorted_key |
|
from ModuleObj import ModuleObj |
|
|
|
class PowerObj(ModuleObj): |
|
def __init__(self): |
|
ModuleObj.__init__(self, 'cust_power.h', 'cust_power.dtsi') |
|
self.__list = {} |
|
|
|
def getCfgInfo(self): |
|
cp = ConfigParser.ConfigParser(allow_no_value=True) |
|
cp.read(ModuleObj.get_figPath()) |
|
|
|
self.__list = cp.options('POWER') |
|
self.__list = self.__list[1:] |
|
self.__list = sorted(self.__list) |
|
|
|
def read(self, node): |
|
nodes = node.childNodes |
|
for node in nodes: |
|
if node.nodeType == xml.dom.Node.ELEMENT_NODE: |
|
if node.nodeName == 'count': |
|
continue |
|
|
|
varNode = node.getElementsByTagName('varName') |
|
|
|
data = PowerData() |
|
data.set_varName(varNode[0].childNodes[0].nodeValue) |
|
|
|
ModuleObj.set_data(self, node.nodeName, data) |
|
|
|
return True |
|
|
|
def parse(self, node): |
|
self.getCfgInfo() |
|
self.read(node) |
|
|
|
def gen_files(self): |
|
ModuleObj.gen_files(self) |
|
|
|
def gen_spec(self, para): |
|
if re.match(r'.*_h$', para): |
|
self.gen_hFile() |
|
|
|
# power module has no DTSI file |
|
def gen_dtsiFile(self): |
|
pass |
|
|
|
def fill_hFile(self): |
|
gen_str = '' |
|
for key in sorted_key(ModuleObj.get_data(self).keys()): |
|
value = ModuleObj.get_data(self)[key] |
|
if value.get_varName() == '': |
|
continue |
|
idx = string.atoi(key[5:]) |
|
name = self.__list[idx] |
|
gen_str += '''#define GPIO_%s\t\tGPIO_%s\n''' %(name.upper(), value.get_varName()) |
|
|
|
return gen_str |
|
|
|
def fill_dtsiFile(self): |
|
return ''
|
|
|