blob: b27aa79daffbcc4c8bcc254176aeff1f7b085921 [file] [log] [blame]
/*
* Copyright (c) 2021 Thomas Stranger
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <freq.h>
#include <mem.h>
/ {
aliases {
eeprom-0 = &eeprom0;
eeprom-1 = &eeprom4;
};
};
&arduino_i2c {
status = "okay";
clock-frequency = <I2C_BITRATE_FAST>;
eeprom0: eeprom@54 {
/* M24C02-FMC6TG aka U1 (2 kbit eeprom in DFN8 package) */
compatible = "st,m24xxx", "atmel,at24";
reg = <0x54>;
size = <256>;
pagesize = <16>;
address-width = <8>;
timeout = <5>;
/* if solder-bridge closed: arduino A1 pin on CN8 can wp */
/* wp-gpios = <&arduino_header 1 GPIO_ACTIVE_LOW>; */
};
eeprom1: eeprom@55 {
/* M24256-DFDW6TP aka U2 (256 kbit eeprom in TSSOP package) */
compatible = "st,m24xxx", "atmel,at24";
reg = <0x55>;
size = <DT_SIZE_K(32)>;
pagesize = <64>;
address-width = <16>;
timeout = <5>;
/* if solder-bridge closed: arduino A1 pin on CN8 can wp */
/* wp-gpios = <&arduino_header 1 GPIO_ACTIVE_LOW>; */
};
eeprom2: eeprom@56 {
/* M24M01-DFMN6TP aka U3 (1 Mbit eeprom in SO8N package) */
compatible = "st,m24xxx", "atmel,at24";
reg = <0x56>;
size = <DT_SIZE_K(128)>;
pagesize = <256>;
address-width = <16>;
timeout = <5>;
/* if solder-bridge closed: arduino A1 pin on CN8 can wp */
/* wp-gpios = <&arduino_header 1 GPIO_ACTIVE_LOW>; */
};
/* U4: unpopulated SO8N footprint for any I2C M24 EEPROM */
};
&arduino_spi {
status = "okay";
cs-gpios = <&arduino_header 8 GPIO_ACTIVE_LOW>, /* U5: eeprom4 */
<&arduino_header 15 GPIO_ACTIVE_LOW>, /* U6: eeprom5 */
<&arduino_header 16 GPIO_ACTIVE_LOW>; /* U7: eeprom6 */
/*
* All chip select pins have an on board 10k pull-up resistor to VCC,
* and are connected to their respective arduino pins via a normally
* closed solder bridge.
*
* All hold pins are connected to VCC with a 10k pull-up, and
* have a connection to arduino pin A3 on CN8 via an open solder bridge.
*
* All write-protect pins are connected to J11 with a 10k pull-up
* resistor. Where they can either be torn to VCC or GND.
* Additionally they are connected to arduino pin A0 on CN8
* via an open solder bridge.
*/
eeprom4: eeprom_m95040@0 {
/* M95040-RMC6TG aka U5 (4 kbit eeprom in DFN8 package) */
compatible = "st,m95xxx", "atmel,at25";
reg = <0x00>;
size = <512>;
pagesize = <16>;
address-width = <8>;
spi-max-frequency = <DT_FREQ_M(20)>;
timeout = <5>;
/* if solder-bridge closed: arduino A0 pin on CN8 can wp */
/* wp-gpios = <&arduino_header 0 GPIO_ACTIVE_LOW>; */
};
eeprom5: eeprom_m95256@1 {
/* M95256-DFDW6TP aka U6 (256 kbit eeprom in TSSOP package) */
compatible = "st,m95xxx", "atmel,at25";
reg = <0x01>;
size = <DT_SIZE_K(32)>;
pagesize = <64>;
address-width = <16>;
spi-max-frequency = <DT_FREQ_M(20)>;
timeout = <5>;
/* if solder-bridge closed: arduino A0 pin on CN8 can wp */
/* wp-gpios = <&arduino_header 0 GPIO_ACTIVE_LOW>; */
};
eeprom6: eeprom_m95m04@2 {
/* M95M04-DRMN6TP aka U7 (4 Mbit eeprom in SON8 package) */
compatible = "st,m95xxx", "atmel,at25";
reg = <0x02>;
size = <DT_SIZE_K(512)>;
pagesize = <512>;
address-width = <24>;
/* max-frequency 10MHz for vcc>=2.5V and 5MHz for vcc>=1.8V */
spi-max-frequency = <DT_FREQ_M(10)>;
timeout = <5>;
/* if solder-bridge closed: arduino A0 pin on CN8 can wp */
/* wp-gpios = <&arduino_header 0 GPIO_ACTIVE_LOW>; */
};
/* U8: unpopulated SO8N footprint for any M95 SPI EEPROM */
};