This parses the board revision from the GSC EEPROm model string. Signed-off-by: Lucas Stach <dev@xxxxxxxxxx> --- arch/arm/boards/gateworks-ventana/gsc.c | 14 ++++++++++++++ arch/arm/boards/gateworks-ventana/gsc.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/arch/arm/boards/gateworks-ventana/gsc.c b/arch/arm/boards/gateworks-ventana/gsc.c index 3614230..92244d1 100644 --- a/arch/arm/boards/gateworks-ventana/gsc.c +++ b/arch/arm/boards/gateworks-ventana/gsc.c @@ -65,3 +65,17 @@ int gsc_i2c_write(struct i2c_client *client, u32 addr, const u8 *buf, u16 count) return ret; } + +char gsc_get_rev(struct i2c_client *client) +{ + int i; + u8 model[16]; + + gsc_i2c_read(client, 0x30, model, 16); + for (i = sizeof(model) - 1; i > 0; i--) { + if (model[i] >= 'A') + return model[i]; + } + + return 'A'; +} diff --git a/arch/arm/boards/gateworks-ventana/gsc.h b/arch/arm/boards/gateworks-ventana/gsc.h index a6e7e22..13f2262 100644 --- a/arch/arm/boards/gateworks-ventana/gsc.h +++ b/arch/arm/boards/gateworks-ventana/gsc.h @@ -56,3 +56,5 @@ */ int gsc_i2c_read(struct i2c_client *client, u32 addr, u8 *buf, u16 count); int gsc_i2c_write(struct i2c_client *client, u32 addr, const u8 *buf, u16 count); + +char gsc_get_rev(struct i2c_client *client); -- 2.9.4 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox