def main(): if len(sys.argv) < 2: print("Usage: {} <dtb_file>".format(sys.argv[0])) sys.exit(1) with open(sys.argv[1], mode='rb') as f: fdt = libfdt.FdtRo(f.read()) batterydata = fdt.path_offset('/qcom,battery-data') for battery_subnode in fdt_for_each_subnode(fdt, batterydata): name = fdt.get_name(battery_subnode) print(name) fcc_temp_lut = find_subnode_by_name(fdt, battery_subnode, "qcom,fcc-temp-lut") fcc_lut_col_legend = fdt.getprop(fcc_temp_lut, "qcom,lut-col-legend") fcc_lut_data = fdt.getprop(fcc_temp_lut, "qcom,lut-data") fcc_lut_col_legend = fdt_as_int32_array(fcc_lut_col_legend) fcc_lut_data = fdt_as_int32_array(fcc_lut_data) # print(fcc_lut_col_legend) # print(fcc_lut_data) pc_temp_ocv_lut = find_subnode_by_name(fdt, battery_subnode, "qcom,pc-temp-ocv-lut") ocv_lut_col_legend = fdt.getprop(pc_temp_ocv_lut, "qcom,lut-col-legend") ocv_lut_row_legend = fdt.getprop(pc_temp_ocv_lut, "qcom,lut-row-legend") ocv_lut_data = fdt.getprop(pc_temp_ocv_lut, "qcom,lut-data") ocv_lut_col_legend = fdt_as_int32_array(ocv_lut_col_legend) ocv_lut_row_legend = fdt_as_int32_array(ocv_lut_row_legend) ocv_lut_data = fdt_as_int32_array(ocv_lut_data) # print(ocv_lut_col_legend) # print(ocv_lut_row_legend) # print(ocv_lut_data) print("bms@4000 {") print("\tstatus = \"okay\";") print("\n\t/* bms old */") print_for_bms_old(fcc_lut_col_legend, fcc_lut_data, ocv_lut_row_legend, ocv_lut_col_legend, ocv_lut_data) print("\n\t/* bms current */") print_for_bms_current(fcc_lut_col_legend, fcc_lut_data, ocv_lut_row_legend, ocv_lut_col_legend, ocv_lut_data) print("\n\t/* bms next */") print_for_bms_next(fcc_lut_col_legend, fcc_lut_data, ocv_lut_row_legend, ocv_lut_col_legend, ocv_lut_data) print("};")
def setUp(self): """Read in the device tree we use for testing""" self.fdt = libfdt.FdtRo(open('test_tree1.dtb').read())
def setUp(self): """Read in the device tree we use for testing""" with open('test_tree1.dtb', mode='rb') as f: self.fdt = libfdt.FdtRo(f.read())