3 * Texas Instruments Incorporated
5 * Lokesh Vutla <lokeshvutla@ti.com>
7 * SPDX-License-Identifier: GPL-2.0+
10 #ifndef _DRA7_IODELAY_H_
11 #define _DRA7_IODELAY_H_
14 #include <asm/arch/sys_proto.h>
17 #define CFG_REG_0_OFFSET 0xC
18 #define CFG_REG_ROM_READ_SHIFT 1
19 #define CFG_REG_ROM_READ_MASK (1 << 1)
20 #define CFG_REG_CALIB_STRT_SHIFT 0
21 #define CFG_REG_CALIB_STRT_MASK (1 << 0)
22 #define CFG_REG_CALIB_STRT 1
23 #define CFG_REG_CALIB_END 0
24 #define CFG_REG_ROM_READ_START (1 << 1)
25 #define CFG_REG_ROM_READ_END (0 << 1)
28 #define CFG_REG_2_OFFSET 0x14
29 #define CFG_REG_REFCLK_PERIOD_SHIFT 0
30 #define CFG_REG_REFCLK_PERIOD_MASK (0xFFFF << 0)
31 #define CFG_REG_REFCLK_PERIOD 0x2EF
34 #define CFG_REG_8_OFFSET 0x2C
35 #define CFG_IODELAY_UNLOCK_KEY 0x0000AAAA
36 #define CFG_IODELAY_LOCK_KEY 0x0000AAAB
38 /* CTRL_CORE_SMA_SW_0 */
39 #define CTRL_ISOLATE_SHIFT 2
40 #define CTRL_ISOLATE_MASK (1 << 2)
42 #define DEISOLATE_IO 0
45 #define PMCTRL_ISOCLK_OVERRIDE_SHIFT 0
46 #define PMCTRL_ISOCLK_OVERRIDE_MASK (1 << 0)
47 #define PMCTRL_ISOCLK_STATUS_SHIFT 1
48 #define PMCTRL_ISOCLK_STATUS_MASK (1 << 1)
49 #define PMCTRL_ISOCLK_OVERRIDE_CTRL 1
50 #define PMCTRL_ISOCLK_NOT_OVERRIDE_CTRL 0
52 #define ERR_CALIBRATE_IODELAY 0x1
53 #define ERR_DEISOLATE_IO 0x2
54 #define ERR_ISOLATE_IO 0x4
55 #define ERR_UPDATE_DELAY 0x8
57 void __recalibrate_iodelay(struct pad_conf_entry const *array, int npads);