/*
 * Atmel Security Module register offsets and bit definitions.
 *
 * Copyright (C) 2016 Atmel
 *
 * Author: Alexandre Belloni <alexandre.belloni@free-electrons.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#ifndef _LINUX_SOC_AT91_ATMEL_SECUMOD_H
#define _LINUX_SOC_AT91_ATMEL_SECUMOD_H

#define AT91_SECUMOD_RAMRDY	0x14
#define AT91_SECUMOD_RAMRDY_READY	BIT(0)

#endif /* _LINUX_SOC_AT91_ATMEL_SECUMOD_H */
