summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLucas Stach <l.stach@pengutronix.de>2018-05-07 16:49:44 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2018-05-14 09:09:09 +0200
commit023547c81215961ab5f2be39e25ddcdd7e1c2de8 (patch)
tree100563935dd389a30f9aa2cf2240d383c617b238 /arch
parenta90a0bbf41e2fc251d31de604e06895ef1db05fa (diff)
downloadbarebox-023547c81215961ab5f2be39e25ddcdd7e1c2de8.tar.gz
barebox-023547c81215961ab5f2be39e25ddcdd7e1c2de8.tar.xz
bbu: imx-bbu-internal: add i.MX51 SPI/I2C flash handler
Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-imx/imx-bbu-internal.c14
-rw-r--r--arch/arm/mach-imx/include/mach/bbu.h9
2 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/imx-bbu-internal.c b/arch/arm/mach-imx/imx-bbu-internal.c
index d03be72487..c7375ff52a 100644
--- a/arch/arm/mach-imx/imx-bbu-internal.c
+++ b/arch/arm/mach-imx/imx-bbu-internal.c
@@ -490,6 +490,20 @@ int imx51_bbu_internal_mmc_register_handler(const char *name, char *devicefile,
return __register_handler(imx_handler);
}
+int imx51_bbu_internal_spi_i2c_register_handler(const char *name,
+ char *devicefile, unsigned long flags)
+{
+ struct imx_internal_bbu_handler *imx_handler;
+
+ imx_handler = __init_handler(name, devicefile, flags);
+ imx_handler->flash_header_offset = FLASH_HEADER_OFFSET_MMC;
+
+ imx_handler->flags = IMX_INTERNAL_FLAG_ERASE;
+ imx_handler->handler.handler = imx_bbu_internal_v1_update;
+
+ return __register_handler(imx_handler);
+}
+
/*
* Register an i.MX53 internal boot update handler for MMC/SD
*/
diff --git a/arch/arm/mach-imx/include/mach/bbu.h b/arch/arm/mach-imx/include/mach/bbu.h
index 15bdbe1bec..bde3e02d27 100644
--- a/arch/arm/mach-imx/include/mach/bbu.h
+++ b/arch/arm/mach-imx/include/mach/bbu.h
@@ -12,6 +12,9 @@ struct imx_dcd_v2_entry;
int imx51_bbu_internal_mmc_register_handler(const char *name, char *devicefile,
unsigned long flags);
+int imx51_bbu_internal_spi_i2c_register_handler(const char *name,
+ char *devicefile, unsigned long flags);
+
int imx53_bbu_internal_mmc_register_handler(const char *name, char *devicefile,
unsigned long flags);
@@ -41,6 +44,12 @@ static inline int imx51_bbu_internal_mmc_register_handler(const char *name, char
return -ENOSYS;
}
+static inline int imx51_bbu_internal_spi_i2c_register_handler(const char *name,
+ char *devicefile, unsigned long flags)
+{
+ return -ENOSYS;
+}
+
static inline int imx53_bbu_internal_mmc_register_handler(const char *name, char *devicefile,
unsigned long flags)
{