diff mbox series

[v2,2/6] eeprom: starfive: function get_product_id_from_eeprom()

Message ID 20240321181149.177356-3-heinrich.schuchardt@canonical.com
State Superseded, archived
Delegated to: Andes
Headers show
Series riscv: add support for Milk-V Mars board | expand

Commit Message

Heinrich Schuchardt March 21, 2024, 6:11 p.m. UTC
Export a function get_product_id_from_eeprom() to read the product ID.
This value can be used for fixing up the device-tree on JH7110 based
products.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
---
v2:
	no change
---
 arch/riscv/include/asm/arch-jh7110/eeprom.h         | 9 +++++++++
 board/starfive/visionfive2/visionfive2-i2c-eeprom.c | 8 ++++++++
 2 files changed, 17 insertions(+)

Comments

Leo Liang March 27, 2024, 9:13 a.m. UTC | #1
On Thu, Mar 21, 2024 at 07:11:45PM +0100, Heinrich Schuchardt wrote:
> Export a function get_product_id_from_eeprom() to read the product ID.
> This value can be used for fixing up the device-tree on JH7110 based
> products.
> 
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> ---
> v2:
> 	no change
> ---
>  arch/riscv/include/asm/arch-jh7110/eeprom.h         | 9 +++++++++
>  board/starfive/visionfive2/visionfive2-i2c-eeprom.c | 8 ++++++++
>  2 files changed, 17 insertions(+)

Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
diff mbox series

Patch

diff --git a/arch/riscv/include/asm/arch-jh7110/eeprom.h b/arch/riscv/include/asm/arch-jh7110/eeprom.h
index d2776d5b6cb..62d184aeb57 100644
--- a/arch/riscv/include/asm/arch-jh7110/eeprom.h
+++ b/arch/riscv/include/asm/arch-jh7110/eeprom.h
@@ -12,4 +12,13 @@ 
 u8 get_pcb_revision_from_eeprom(void);
 u32 get_ddr_size_from_eeprom(void);
 
+/**
+ * get_product_id_from_eeprom - get product ID string
+ *
+ * A string like "VF7110A1-2228-D008E000-00000001" is returned.
+ *
+ * Return:	product ID string
+ */
+const char *get_product_id_from_eeprom(void);
+
 #endif /* _ASM_RISCV_EEPROM_H */
diff --git a/board/starfive/visionfive2/visionfive2-i2c-eeprom.c b/board/starfive/visionfive2/visionfive2-i2c-eeprom.c
index c36de1a5125..a9f4376c8e1 100644
--- a/board/starfive/visionfive2/visionfive2-i2c-eeprom.c
+++ b/board/starfive/visionfive2/visionfive2-i2c-eeprom.c
@@ -405,6 +405,14 @@  static void set_product_id(char *string)
 	update_crc();
 }
 
+const char *get_product_id_from_eeprom(void)
+{
+	if (read_eeprom())
+		return NULL;
+
+	return pbuf.eeprom.atom1.data.pstr;
+}
+
 int do_mac(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
 	char *cmd;