Commit fe73a379 authored by Alejandro Mery's avatar Alejandro Mery
Browse files

fexc: uboot: ensure data from [pmu_para] is print in order

parent a9b99916
...@@ -32,6 +32,14 @@ ...@@ -32,6 +32,14 @@
#define pr_debug(...) #define pr_debug(...)
#endif #endif
struct members {
const char *name;
const char *translation;
int mode;
};
/*
*/
static inline void out_u32_member(FILE *out, const char *key, int hexa, static inline void out_u32_member(FILE *out, const char *key, int hexa,
struct script_single_entry *val) struct script_single_entry *val)
{ {
...@@ -142,6 +150,16 @@ invalid_field: ...@@ -142,6 +150,16 @@ invalid_field:
/* /*
* PMU * PMU
*/ */
static struct members pmu_members[] = {
{ .name = "pmu_used2" },
{ .name = "pmu_para" },
{ .name = "pmu_adpdet" },
{ .name = "pmu_shutdown_chgcur" },
{ .name = "pmu_shutdown_chgcur2" },
{ .name = "pmu_pwroff_vol" },
{ .name = "pmu_pwron_vol" },
};
static int generate_pmu_struct(FILE *out, struct script_section *target, static int generate_pmu_struct(FILE *out, struct script_section *target,
struct script_section *pmu_para) struct script_section *pmu_para)
{ {
...@@ -164,29 +182,18 @@ static int generate_pmu_struct(FILE *out, struct script_section *target, ...@@ -164,29 +182,18 @@ static int generate_pmu_struct(FILE *out, struct script_section *target,
} }
} }
sp = pmu_para; for (const struct members *mp = pmu_members;
for (le = list_first(&sp->entries); le; mp < pmu_members+ARRAY_SIZE(pmu_members); mp++) {
le = list_next(&sp->entries, le)) { ep = script_find_entry(pmu_para, mp->name);
ep = container_of(le, struct script_entry, entries); if (!ep)
if (strncmp(ep->name, "pmu_", 4) != 0)
continue; continue;
key = ep->name+4;
key = (mp->translation) ? mp->translation : mp->name+4;
if (strcmp(key, "used2") == 0 || if (!out_member(out, key, mp->mode, ep)) {
strcmp(key, "para") == 0 || pr_err("pmu_para: %s: invalid field\n", mp->name);
strcmp(key, "adpdet") == 0 ||
strcmp(key, "shutdown_chgcur") == 0 ||
strcmp(key, "shutdown_chgcur2") == 0 ||
strcmp(key, "pwroff_vol") == 0 ||
strcmp(key, "pwron_vol") == 0) {
if (!out_member(out, key, 0, ep)) {
pr_err("pmu_para: %s: invalid field\n", ep->name);
ret = 0; ret = 0;
} }
} }
}
fputs("};\n", out); fputs("};\n", out);
fputs("\nint sunxi_pmu_init(void)\n" fputs("\nint sunxi_pmu_init(void)\n"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment