134 lines
3.5 KiB
Plaintext
134 lines
3.5 KiB
Plaintext
/*
|
|
* 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>;
|
|
label = "EEPROM_M24C02";
|
|
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>;
|
|
label = "EEPROM_M24256";
|
|
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>;
|
|
label = "EEPROM_M24M01";
|
|
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>;
|
|
label = "EEPROM_M95040";
|
|
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>;
|
|
label = "EEPROM_M95256";
|
|
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>;
|
|
label = "EEPROM_M95M04";
|
|
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 */
|
|
};
|