Browse Source

add eeprom device and add i2c eeprom configure

jianlong.huang 2 years ago
parent
commit
bcd3338f77

+ 6 - 0
arch/riscv/dts/jh7100-beaglev-starlight.dts

@@ -543,6 +543,12 @@
 			};
 		};
 	};
+
+	eeprom_dev:eeprom@50 {
+               compatible = "atmel,24c04";
+               reg = <0x50>;
+               pagesize = <16>;
+        };
 };
 
 &i2c1 {

+ 6 - 1
cmd/eeprom.c

@@ -365,6 +365,7 @@ int do_eeprom(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 	int ret;
 	char *field_name = "";
 	char *field_value = "";
+	char *endptr;
 
 	if (argc <= 1)
 		return CMD_RET_USAGE;
@@ -413,7 +414,11 @@ int do_eeprom(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 		NEXT_PARAM(argc, index);
 
 	if (action == EEPROM_READ || action == EEPROM_WRITE) {
-		addr = parse_numeric_param(argv[index]);
+		//addr = parse_numeric_param(argv[index]);
+		addr = simple_strtoul(argv[index], &endptr, 16);
+                if(*endptr != '\0'){
+                	addr = -1;
+                }
 		NEXT_PARAM(argc, index);
 		off = parse_numeric_param(argv[index]);
 		NEXT_PARAM(argc, index);

+ 10 - 0
configs/starfive_jh7100_starlight_smode_defconfig

@@ -118,9 +118,19 @@ CONFIG_IP_DEFRAG=y
 CONFIG_TFTP_TSIZE=y
 CONFIG_SERVERIP_FROM_PROXYDHCP=y
 # CONFIG_CLK is not set
+CONFIG_I2C=y
+CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_DW=y
 # CONFIG_SYS_I2C_OCORES is not set
 # CONFIG_SIFIVE_OTP is not set
+CONFIG_I2C_EEPROM=y
+CONFIG_SYS_I2C_EEPROM_ADDR=0x50
+CONFIG_SYS_I2C_EEPROM_BUS=0
+CONFIG_SYS_EEPROM_SIZE=512
+CONFIG_SYS_EEPROM_PAGE_WRITE_BITS=0
+CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=0
+CONFIG_SYS_I2C_EEPROM_ADDR_LEN=1
+CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW=0
 # CONFIG_MMC_BROKEN_CD is not set
 # CONFIG_MMC_SPI is not set
 # CONFIG_MMC_QUIRKS is not set