1# EEPROM driver configuration options
2
3# Copyright (c) 2019 Vestas Wind Systems A/S
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig EEPROM
7	bool "Electrically Erasable Programmable Read-Only Memory (EEPROM) drivers"
8	help
9	  Enable support for EEPROM hardware.
10
11if EEPROM
12
13module = EEPROM
14module-str = eeprom
15source "subsys/logging/Kconfig.template.log_config"
16
17config EEPROM_INIT_PRIORITY
18	int "EEPROM init priority"
19	default KERNEL_INIT_PRIORITY_DEVICE
20	help
21	  EEPROM driver device initialization priority. This initialization
22	  priority is used unless the driver implementation has its own
23	  initialization priority.
24
25config EEPROM_SHELL
26	bool "EEPROM shell"
27	depends on SHELL
28	help
29	  Enable the EEPROM shell with EEPROM related commands.
30
31config EEPROM_SHELL_BUFFER_SIZE
32	int "EEPROM shell buffer size"
33	default 256
34	depends on EEPROM_SHELL
35	help
36	  Size of the buffer used for EEPROM read/write commands in
37	  the EEPROM shell.
38
39config EEPROM_AT2X
40	bool
41	help
42	  Enable support for Atmel AT2x (and compatible) I2C/SPI
43	  EEPROMs.
44
45config EEPROM_AT2X_EMUL
46	bool "Emulate an Atmel AT24 I2C chip"
47	depends on EMUL
48	help
49	  This is an emulator for the Atmel AT24 series of I2C-attached EEPROMs.
50
51	  At present it only supports 8-bit addressing. The size of the EEPROM
52	  is given by the 'size' property. See the binding for further details.
53
54config EEPROM_AT24
55	bool "I2C EEPROMs compatible with Atmel's AT24 family"
56	default y
57	depends on DT_HAS_ATMEL_AT24_ENABLED
58	select I2C
59	select EEPROM_AT2X
60	help
61	  Enable support for I2C EEPROMs compatible with Atmel's AT24 family.
62
63	  There are multiple vendors manufacturing I2C EEPROMs compatible with
64	  the programming model of the Atmel AT24.
65
66	  Examples of compatible EEPROM families:
67	  - Microchip AT24xxx
68	  - ST M24xxx
69
70config EEPROM_AT25
71	bool "SPI EEPROMs compatible with Atmel's AT25 family"
72	default y
73	depends on DT_HAS_ATMEL_AT25_ENABLED
74	select SPI
75	select EEPROM_AT2X
76	help
77	  Enable support for SPI EEPROMs compatible with Atmel's AT25 family.
78
79	  There are multiple vendors manufacturing SPI EEPROMs compatible with
80	  the programming model of the Atmel AT25.
81
82	  Examples of compatible EEPROM families:
83	  - Microchip AT25xxx
84	  - ST M95xxx
85
86config EEPROM_AT2X_INIT_PRIORITY
87	int "AT2X EEPROM init priority"
88	default 80
89	depends on EEPROM_AT2X
90	help
91	  AT2X EEPROM driver device initialization priority.
92
93	  The EEPROM is connected to I2C or SPI bus an has to be initialized
94	  after I2C/SPI driver.
95
96source "drivers/eeprom/Kconfig.lpc11u6x"
97source "drivers/eeprom/Kconfig.stm32"
98source "drivers/eeprom/Kconfig.eeprom_emu"
99source "drivers/eeprom/Kconfig.tmp11x"
100source "drivers/eeprom/Kconfig.xec"
101source "drivers/eeprom/Kconfig.mb85rcxx"
102source "drivers/eeprom/Kconfig.mb85rsxx"
103source "drivers/eeprom/Kconfig.fm25xxx"
104
105config EEPROM_SIMULATOR
106	bool "Simulated EEPROM driver"
107	default y
108	depends on DT_HAS_ZEPHYR_SIM_EEPROM_ENABLED
109	select STATS
110	select STATS_NAMES
111	help
112	  Enable Simulated EEPROM driver.
113
114config EEPROM_SIMULATOR_SIMULATE_TIMING
115	bool "Hardware timing simulation"
116	depends on EEPROM_SIMULATOR
117	help
118	  Enable Simulated hardware timing.
119
120if EEPROM_SIMULATOR_SIMULATE_TIMING
121
122config EEPROM_SIMULATOR_MIN_READ_TIME_US
123	int
124	prompt "Minimum read time (µS)"
125	default 2
126	range 1 1000000
127
128config EEPROM_SIMULATOR_MIN_WRITE_TIME_US
129	int
130	prompt "Minimum write time (µS)"
131	default 100
132	range 1 1000000
133
134endif # EEPROM_SIMULATOR_SIMULATE_TIMING
135
136config EEPROM_FAKE
137	bool "Fake EEPROM driver"
138	default y
139	depends on DT_HAS_ZEPHYR_FAKE_EEPROM_ENABLED
140	help
141	  Enable support for the FFF-based fake EEPROM driver.
142
143endif # EEPROM
144