]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/arm/include/asm/arch-omap5/dra7xx_iodelay.h
ARM: DRA7: Add support for IO delay configuration
[karo-tx-uboot.git] / arch / arm / include / asm / arch-omap5 / dra7xx_iodelay.h
1 /*
2  * (C) Copyright 2015
3  * Texas Instruments Incorporated
4  *
5  * Lokesh Vutla <lokeshvutla@ti.com>
6  *
7  * SPDX-License-Identifier:     GPL-2.0+
8  */
9
10 #ifndef _DRA7_IODELAY_H_
11 #define _DRA7_IODELAY_H_
12
13 #include <common.h>
14 #include <asm/arch/sys_proto.h>
15
16 /* CONFIG_REG_0 */
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)
26
27 /* CONFIG_REG_2 */
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
32
33 /* CONFIG_REG_8 */
34 #define CFG_REG_8_OFFSET                0x2C
35 #define CFG_IODELAY_UNLOCK_KEY          0x0000AAAA
36 #define CFG_IODELAY_LOCK_KEY            0x0000AAAB
37
38 /* CTRL_CORE_SMA_SW_0 */
39 #define CTRL_ISOLATE_SHIFT              2
40 #define CTRL_ISOLATE_MASK               (1 << 2)
41 #define ISOLATE_IO                      1
42 #define DEISOLATE_IO                    0
43
44 /* PRM_IO_PMCTRL */
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
51
52 #define ERR_CALIBRATE_IODELAY           0x1
53 #define ERR_DEISOLATE_IO                0x2
54 #define ERR_ISOLATE_IO                  0x4
55 #define ERR_UPDATE_DELAY                0x8
56
57 void __recalibrate_iodelay(struct pad_conf_entry const *array, int npads);
58 #endif