summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChe-Liang Chiou <clchiou@chromium.org>2011-07-13 10:59:11 +0800
committerSimon Glass <sjg@chromium.org>2011-08-29 10:58:53 -0700
commit541a442f9b2fc8579d8ae3d9c2300c206c8840a9 (patch)
tree854330a0dfbf9490efe4e949aa2bb38dd7388b68 /lib
parentb1df40c675024f8dd48d0e55062ea0168f4ec598 (diff)
CHROMIUM: refactor GPIO interface
BUG=chromium-os:17424 TEST=boot on Seaboard Change-Id: I9b1f42801eedfba5e7f4e85a5b3ac1e1c106b6bf Reviewed-on: http://gerrit.chromium.org/gerrit/3998 Reviewed-by: Che-Liang Chiou <clchiou@chromium.org> Tested-by: Che-Liang Chiou <clchiou@chromium.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/chromeos/crossystem_data.c38
1 files changed, 16 insertions, 22 deletions
diff --git a/lib/chromeos/crossystem_data.c b/lib/chromeos/crossystem_data.c
index 8dc4240fee..e12ef62ad9 100644
--- a/lib/chromeos/crossystem_data.c
+++ b/lib/chromeos/crossystem_data.c
@@ -28,9 +28,9 @@ enum {
CHSW_WRITE_PROTECT_DISABLED = 0x200
};
-int crossystem_data_init(crossystem_data_t *cdata, void *fdt, char *frid,
+int crossystem_data_init(crossystem_data_t *cdata, char *frid,
uint32_t fmap_data, void *gbb_data, void *nvcxt_raw,
- int write_protect_sw, int recovery_sw, int developer_sw)
+ cros_gpio_t *wpsw, cros_gpio_t *recsw, cros_gpio_t *devsw)
{
GoogleBinaryBlockHeader *gbbh = (GoogleBinaryBlockHeader *)gbb_data;
@@ -43,11 +43,11 @@ int crossystem_data_init(crossystem_data_t *cdata, void *fdt, char *frid,
strcpy(cdata->signature, "CHROMEOS");
cdata->version = SHARED_MEM_VERSION;
- if (recovery_sw)
+ if (recsw->value)
cdata->chsw |= CHSW_RECOVERY_BUTTON_PRESSED;
- if (developer_sw)
+ if (devsw->value)
cdata->chsw |= CHSW_DEVELOPER_MODE_ENABLED;
- if (!write_protect_sw)
+ if (!wpsw->value)
cdata->chsw |= CHSW_WRITE_PROTECT_DISABLED;
strncpy(cdata->frid, frid, ID_LEN);
@@ -60,23 +60,17 @@ int crossystem_data_init(crossystem_data_t *cdata, void *fdt, char *frid,
/* recovery reason is default to VBNV_RECOVERY_NOT_REQUESTED */
cdata->binf[4] = VBNV_RECOVERY_NOT_REQUESTED;
- cdata->write_protect_sw = write_protect_sw;
- cdata->recovery_sw = recovery_sw;
- cdata->developer_sw = developer_sw;
-
- cdata->gpio_port_write_protect_sw = fdt_decode_get_config_int(fdt,
- "gpio_port_write_protect_switch", -1);
- cdata->gpio_port_recovery_sw = fdt_decode_get_config_int(fdt,
- "gpio_port_recovery_switch", -1);
- cdata->gpio_port_developer_sw = fdt_decode_get_config_int(fdt,
- "gpio_port_developer_switch", -1);
-
- cdata->polarity_write_protect_sw = fdt_decode_get_config_int(fdt,
- "polarity_write_protect_switch", -1);
- cdata->polarity_recovery_sw = fdt_decode_get_config_int(fdt,
- "polarity_recovery_switch", -1);
- cdata->polarity_developer_sw = fdt_decode_get_config_int(fdt,
- "polarity_developer_switch", -1);
+ cdata->gpio_port_write_protect_sw = wpsw->port;
+ cdata->gpio_port_recovery_sw = recsw->port;
+ cdata->gpio_port_developer_sw = devsw->port;
+
+ cdata->polarity_write_protect_sw = wpsw->polarity;
+ cdata->polarity_recovery_sw = recsw->polarity;
+ cdata->polarity_developer_sw = devsw->polarity;
+
+ cdata->write_protect_sw = wpsw->value;
+ cdata->recovery_sw = recsw->value;
+ cdata->developer_sw = devsw->value;
cdata->vbnv[0] = 0;
cdata->vbnv[1] = VBNV_BLOCK_SIZE;