162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/* drivers/atm/zeprom.h - ZeitNet ZN122x EEPROM (NM93C46) declarations */
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci/* Written 1995,1996 by Werner Almesberger, EPFL LRC */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#ifndef DRIVER_ATM_ZEPROM_H
862306a36Sopenharmony_ci#define DRIVER_ATM_ZEPROM_H
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/* Different versions use different control registers */
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#define ZEPROM_V1_REG	PCI_VENDOR_ID	/* PCI register */
1362306a36Sopenharmony_ci#define ZEPROM_V2_REG	0x40
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci/* Bits in control register */
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#define ZEPROM_SK	0x80000000	/* strobe (probably on raising edge) */
1862306a36Sopenharmony_ci#define ZEPROM_CS	0x40000000	/* Chip Select */
1962306a36Sopenharmony_ci#define ZEPROM_DI	0x20000000	/* Data Input */
2062306a36Sopenharmony_ci#define ZEPROM_DO	0x10000000	/* Data Output */
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci#define ZEPROM_SIZE	32		/* 32 bytes */
2362306a36Sopenharmony_ci#define ZEPROM_V1_ESI_OFF 24		/* ESI offset in EEPROM (V1) */
2462306a36Sopenharmony_ci#define ZEPROM_V2_ESI_OFF 4		/* ESI offset in EEPROM (V2) */
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci#define ZEPROM_CMD_LEN	3		/* commands are three bits */
2762306a36Sopenharmony_ci#define ZEPROM_ADDR_LEN	6		/* addresses are six bits */
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci/* Commands (3 bits) */
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci#define ZEPROM_CMD_READ	6
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci/* No other commands are needed. */
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci#endif
36