| /* |
| * 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 { |
| 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 */ |
| }; |