ARM: imx6: gw54xx: add function to retrieve board revision from GSC
PATCH 1/2 ARM: imx6: gw54xx: add function to retrieve board revision from GSC
This parses the board revision from the GSC EEPROm model string.
Signed-off-by Lucas Stach <[email protected]>
--- arch/arm/boards/gateworks-ventana/gsc.c | 14 ++++++++++++++ arch/arm/boards/gateworks-ventana/gsc.h | 2 ++ 2 files changed, 16 insertions(+)
arch/arm/boards/gateworks-ventana/gsc.c +14 -0
@@ -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' ; +}
arch/arm/boards/gateworks-ventana/gsc.h +2 -0
@@ -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);
Signature · 7 lines
2.9.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH 2/2 ARM: imx6: gw54xx: fixup watchdog nodes on pre rev E boards
Older boards before revision E don't have the external watchdog signal wired up to the PMIC, so they must use watchdog 1, which is able to reset the SoC internally.
Signed-off-by Lucas Stach <[email protected]>
--- arch/arm/boards/gateworks-ventana/board.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
arch/arm/boards/gateworks-ventana/board.c +17 -0
@@ -24,6 +24,19 @@#include "gsc.h" +static int gw54xx_wdog_of_fixup (struct device_node *root,void *context) +{ +struct device_node *np; + +/* switch to the watchdog with internal reset capabilities */ + np =of_find_node_by_name (root,"wdog@020c0000" ); +of_device_disable (np); + np =of_find_node_by_name (root,"wdog@020bc000" ); +of_device_enable (np); + +return 0 ; +} +static int gw54xx_devices_init (void ) {struct i2c_client client;
@@ -60,6 +73,10 @@ static int gw54xx_devices_init(void)of_eth_register_ethaddr (dnode, mac); } +/* boards before rev E don't have the external watchdog signal */ +if (gsc_get_rev (&client) <'E' ) +of_register_fixup (gw54xx_wdog_of_fixup,NULL ); +imx6_bbu_nand_register_handler ("nand" ,BBU_HANDLER_FLAG_DEFAULT );barebox_set_hostname ("gw54xx" );
Signature · 7 lines
2.9.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Sascha Hauer
AppliedQuoted 7 lines · Lucas Stach
This parses the board revision from the GSC EEPROm model string.
Signed-off-by Lucas Stach <[email protected]>--- arch/arm/boards/gateworks-ventana/gsc.c | 14 ++++++++++++++ arch/arm/boards/gateworks-ventana/gsc.h | 2 ++ 2 files changed, 16 insertions(+)
Applied, thanks
Sascha
Quoted 42 lines
arch/arm/boards/gateworks-ventana/gsc.c +14
-0@@ -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' ; +}arch/arm/boards/gateworks-ventana/gsc.h +2
-0@@ -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);Signature · 7 lines
2.9.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Signature · 9 lines
Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox