Merge tag 'efi-2020-07-rc6' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
[oweals/u-boot.git] / arch / arm / include / asm / arch-stv0991 / stv0991_creg.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2014, STMicroelectronics - All Rights Reserved
4  * Author(s): Vikas Manocha, <vikas.manocha@st.com> for STMicroelectronics.
5  */
6
7 #ifndef _STV0991_CREG_H
8 #define _STV0991_CREG_H
9
10 struct stv0991_creg {
11         u32 version;            /* offset 0x0 */
12         u32 hdpctl;             /* offset 0x4 */
13         u32 hdpval;             /* offset 0x8 */
14         u32 hdpgposet;          /* offset 0xc */
15         u32 hdpgpoclr;          /* offset 0x10 */
16         u32 hdpgpoval;          /* offset 0x14 */
17         u32 stm_mux;            /* offset 0x18 */
18         u32 sysctrl_1;          /* offset 0x1c */
19         u32 sysctrl_2;          /* offset 0x20 */
20         u32 sysctrl_3;          /* offset 0x24 */
21         u32 sysctrl_4;          /* offset 0x28 */
22         u32 reserved_1[0x35];   /* offset 0x2C-0xFC */
23         u32 mux1;               /* offset 0x100 */
24         u32 mux2;               /* offset 0x104 */
25         u32 mux3;               /* offset 0x108 */
26         u32 mux4;               /* offset 0x10c */
27         u32 mux5;               /* offset 0x110 */
28         u32 mux6;               /* offset 0x114 */
29         u32 mux7;               /* offset 0x118 */
30         u32 mux8;               /* offset 0x11c */
31         u32 mux9;               /* offset 0x120 */
32         u32 mux10;              /* offset 0x124 */
33         u32 mux11;              /* offset 0x128 */
34         u32 mux12;              /* offset 0x12c */
35         u32 mux13;              /* offset 0x130 */
36         u32 reserved_2[0x33];   /* offset 0x134-0x1FC */
37         u32 cfg_pad1;           /* offset 0x200 */
38         u32 cfg_pad2;           /* offset 0x204 */
39         u32 cfg_pad3;           /* offset 0x208 */
40         u32 cfg_pad4;           /* offset 0x20c */
41         u32 cfg_pad5;           /* offset 0x210 */
42         u32 cfg_pad6;           /* offset 0x214 */
43         u32 cfg_pad7;           /* offset 0x218 */
44         u32 reserved_3[0x39];   /* offset 0x21C-0x2FC */
45         u32 vdd_pad1;           /* offset 0x300 */
46         u32 vdd_pad2;           /* offset 0x304 */
47         u32 reserved_4[0x3e];   /* offset 0x308-0x3FC */
48         u32 vdd_comp1;          /* offset 0x400 */
49 };
50
51 /* CREG MUX 13 register */
52 #define FLASH_CS_NC_SHIFT       4
53 #define FLASH_CS_NC_MASK        ~(7 << FLASH_CS_NC_SHIFT)
54 #define CFG_FLASH_CS_NC         (0 << FLASH_CS_NC_SHIFT)
55
56 #define FLASH_CLK_SHIFT         0
57 #define FLASH_CLK_MASK          ~(7 << FLASH_CLK_SHIFT)
58 #define CFG_FLASH_CLK           (0 << FLASH_CLK_SHIFT)
59
60 /* CREG MUX 12 register */
61 #define GPIOC_30_MUX_SHIFT      24
62 #define GPIOC_30_MUX_MASK       ~(1 << GPIOC_30_MUX_SHIFT)
63 #define CFG_GPIOC_30_UART_TX    (1 << GPIOC_30_MUX_SHIFT)
64
65 #define GPIOC_31_MUX_SHIFT      28
66 #define GPIOC_31_MUX_MASK       ~(1 << GPIOC_31_MUX_SHIFT)
67 #define CFG_GPIOC_31_UART_RX    (1 << GPIOC_31_MUX_SHIFT)
68
69 /* CREG MUX 7 register */
70 #define GPIOB_16_MUX_SHIFT      0
71 #define GPIOB_16_MUX_MASK       ~(1 << GPIOB_16_MUX_SHIFT)
72 #define CFG_GPIOB_16_UART_TX    (1 << GPIOB_16_MUX_SHIFT)
73
74 #define GPIOB_17_MUX_SHIFT      4
75 #define GPIOB_17_MUX_MASK       ~(1 << GPIOB_17_MUX_SHIFT)
76 #define CFG_GPIOB_17_UART_RX    (1 << GPIOB_17_MUX_SHIFT)
77
78 /* CREG CFG_PAD6 register */
79
80 #define GPIOC_31_MODE_SHIFT     30
81 #define GPIOC_31_MODE_MASK      ~(1 << GPIOC_31_MODE_SHIFT)
82 #define CFG_GPIOC_31_MODE_OD    (0 << GPIOC_31_MODE_SHIFT)
83 #define CFG_GPIOC_31_MODE_PP    (1 << GPIOC_31_MODE_SHIFT)
84
85 #define GPIOC_30_MODE_SHIFT     28
86 #define GPIOC_30_MODE_MASK      ~(1 << GPIOC_30_MODE_SHIFT)
87 #define CFG_GPIOC_30_MODE_LOW   (0 << GPIOC_30_MODE_SHIFT)
88 #define CFG_GPIOC_30_MODE_HIGH  (1 << GPIOC_30_MODE_SHIFT)
89
90 /* CREG Ethernet pad config */
91
92 #define VDD_ETH_PS_1V8          0
93 #define VDD_ETH_PS_2V5          2
94 #define VDD_ETH_PS_3V3          3
95 #define VDD_ETH_PS_MASK         0x3
96
97 #define VDD_ETH_PS_SHIFT        12
98 #define ETH_VDD_CFG             (VDD_ETH_PS_1V8 << VDD_ETH_PS_SHIFT)
99
100 #define VDD_ETH_M_PS_SHIFT      28
101 #define ETH_M_VDD_CFG           (VDD_ETH_PS_1V8 << VDD_ETH_M_PS_SHIFT)
102
103 #endif