19fa32b12SVikas Manocha /* 29fa32b12SVikas Manocha * (C) Copyright 2014 39fa32b12SVikas Manocha * Vikas Manocha, ST Micoelectronics, vikas.manocha@st.com 49fa32b12SVikas Manocha * 59fa32b12SVikas Manocha * SPDX-License-Identifier: GPL-2.0+ 69fa32b12SVikas Manocha */ 79fa32b12SVikas Manocha 89fa32b12SVikas Manocha #ifndef _STV0991_CREG_H 99fa32b12SVikas Manocha #define _STV0991_CREG_H 109fa32b12SVikas Manocha 119fa32b12SVikas Manocha struct stv0991_creg { 129fa32b12SVikas Manocha u32 version; /* offset 0x0 */ 139fa32b12SVikas Manocha u32 hdpctl; /* offset 0x4 */ 149fa32b12SVikas Manocha u32 hdpval; /* offset 0x8 */ 159fa32b12SVikas Manocha u32 hdpgposet; /* offset 0xc */ 169fa32b12SVikas Manocha u32 hdpgpoclr; /* offset 0x10 */ 179fa32b12SVikas Manocha u32 hdpgpoval; /* offset 0x14 */ 189fa32b12SVikas Manocha u32 stm_mux; /* offset 0x18 */ 199fa32b12SVikas Manocha u32 sysctrl_1; /* offset 0x1c */ 209fa32b12SVikas Manocha u32 sysctrl_2; /* offset 0x20 */ 219fa32b12SVikas Manocha u32 sysctrl_3; /* offset 0x24 */ 229fa32b12SVikas Manocha u32 sysctrl_4; /* offset 0x28 */ 239fa32b12SVikas Manocha u32 reserved_1[0x35]; /* offset 0x2C-0xFC */ 249fa32b12SVikas Manocha u32 mux1; /* offset 0x100 */ 259fa32b12SVikas Manocha u32 mux2; /* offset 0x104 */ 269fa32b12SVikas Manocha u32 mux3; /* offset 0x108 */ 279fa32b12SVikas Manocha u32 mux4; /* offset 0x10c */ 289fa32b12SVikas Manocha u32 mux5; /* offset 0x110 */ 299fa32b12SVikas Manocha u32 mux6; /* offset 0x114 */ 309fa32b12SVikas Manocha u32 mux7; /* offset 0x118 */ 319fa32b12SVikas Manocha u32 mux8; /* offset 0x11c */ 329fa32b12SVikas Manocha u32 mux9; /* offset 0x120 */ 339fa32b12SVikas Manocha u32 mux10; /* offset 0x124 */ 349fa32b12SVikas Manocha u32 mux11; /* offset 0x128 */ 359fa32b12SVikas Manocha u32 mux12; /* offset 0x12c */ 369fa32b12SVikas Manocha u32 mux13; /* offset 0x130 */ 379fa32b12SVikas Manocha u32 reserved_2[0x33]; /* offset 0x134-0x1FC */ 389fa32b12SVikas Manocha u32 cfg_pad1; /* offset 0x200 */ 399fa32b12SVikas Manocha u32 cfg_pad2; /* offset 0x204 */ 409fa32b12SVikas Manocha u32 cfg_pad3; /* offset 0x208 */ 419fa32b12SVikas Manocha u32 cfg_pad4; /* offset 0x20c */ 429fa32b12SVikas Manocha u32 cfg_pad5; /* offset 0x210 */ 439fa32b12SVikas Manocha u32 cfg_pad6; /* offset 0x214 */ 449fa32b12SVikas Manocha u32 cfg_pad7; /* offset 0x218 */ 459fa32b12SVikas Manocha u32 reserved_3[0x39]; /* offset 0x21C-0x2FC */ 469fa32b12SVikas Manocha u32 vdd_pad1; /* offset 0x300 */ 479fa32b12SVikas Manocha u32 vdd_pad2; /* offset 0x304 */ 489fa32b12SVikas Manocha u32 reserved_4[0x3e]; /* offset 0x308-0x3FC */ 499fa32b12SVikas Manocha u32 vdd_comp1; /* offset 0x400 */ 509fa32b12SVikas Manocha }; 519fa32b12SVikas Manocha 52*54afb500SVikas Manocha /* CREG MUX 13 register */ 53*54afb500SVikas Manocha #define FLASH_CS_NC_SHIFT 4 54*54afb500SVikas Manocha #define FLASH_CS_NC_MASK ~(7 << FLASH_CS_NC_SHIFT) 55*54afb500SVikas Manocha #define CFG_FLASH_CS_NC (0 << FLASH_CS_NC_SHIFT) 56*54afb500SVikas Manocha 57*54afb500SVikas Manocha #define FLASH_CLK_SHIFT 0 58*54afb500SVikas Manocha #define FLASH_CLK_MASK ~(7 << FLASH_CLK_SHIFT) 59*54afb500SVikas Manocha #define CFG_FLASH_CLK (0 << FLASH_CLK_SHIFT) 60*54afb500SVikas Manocha 619fa32b12SVikas Manocha /* CREG MUX 12 register */ 629fa32b12SVikas Manocha #define GPIOC_30_MUX_SHIFT 24 639fa32b12SVikas Manocha #define GPIOC_30_MUX_MASK ~(1 << GPIOC_30_MUX_SHIFT) 649fa32b12SVikas Manocha #define CFG_GPIOC_30_UART_TX (1 << GPIOC_30_MUX_SHIFT) 659fa32b12SVikas Manocha 669fa32b12SVikas Manocha #define GPIOC_31_MUX_SHIFT 28 679fa32b12SVikas Manocha #define GPIOC_31_MUX_MASK ~(1 << GPIOC_31_MUX_SHIFT) 689fa32b12SVikas Manocha #define CFG_GPIOC_31_UART_RX (1 << GPIOC_31_MUX_SHIFT) 699fa32b12SVikas Manocha 709fa32b12SVikas Manocha /* CREG MUX 7 register */ 719fa32b12SVikas Manocha #define GPIOB_16_MUX_SHIFT 0 729fa32b12SVikas Manocha #define GPIOB_16_MUX_MASK ~(1 << GPIOB_16_MUX_SHIFT) 739fa32b12SVikas Manocha #define CFG_GPIOB_16_UART_TX (1 << GPIOB_16_MUX_SHIFT) 749fa32b12SVikas Manocha 759fa32b12SVikas Manocha #define GPIOB_17_MUX_SHIFT 4 769fa32b12SVikas Manocha #define GPIOB_17_MUX_MASK ~(1 << GPIOB_17_MUX_SHIFT) 779fa32b12SVikas Manocha #define CFG_GPIOB_17_UART_RX (1 << GPIOB_17_MUX_SHIFT) 789fa32b12SVikas Manocha 799fa32b12SVikas Manocha /* CREG CFG_PAD6 register */ 809fa32b12SVikas Manocha 819fa32b12SVikas Manocha #define GPIOC_31_MODE_SHIFT 30 829fa32b12SVikas Manocha #define GPIOC_31_MODE_MASK ~(1 << GPIOC_31_MODE_SHIFT) 839fa32b12SVikas Manocha #define CFG_GPIOC_31_MODE_OD (0 << GPIOC_31_MODE_SHIFT) 849fa32b12SVikas Manocha #define CFG_GPIOC_31_MODE_PP (1 << GPIOC_31_MODE_SHIFT) 859fa32b12SVikas Manocha 869fa32b12SVikas Manocha #define GPIOC_30_MODE_SHIFT 28 879fa32b12SVikas Manocha #define GPIOC_30_MODE_MASK ~(1 << GPIOC_30_MODE_SHIFT) 889fa32b12SVikas Manocha #define CFG_GPIOC_30_MODE_LOW (0 << GPIOC_30_MODE_SHIFT) 899fa32b12SVikas Manocha #define CFG_GPIOC_30_MODE_HIGH (1 << GPIOC_30_MODE_SHIFT) 909fa32b12SVikas Manocha 912ce4eaf4SVikas Manocha /* CREG Ethernet pad config */ 922ce4eaf4SVikas Manocha 932ce4eaf4SVikas Manocha #define VDD_ETH_PS_1V8 0 942ce4eaf4SVikas Manocha #define VDD_ETH_PS_2V5 2 952ce4eaf4SVikas Manocha #define VDD_ETH_PS_3V3 3 962ce4eaf4SVikas Manocha #define VDD_ETH_PS_MASK 0x3 972ce4eaf4SVikas Manocha 982ce4eaf4SVikas Manocha #define VDD_ETH_PS_SHIFT 12 992ce4eaf4SVikas Manocha #define ETH_VDD_CFG (VDD_ETH_PS_1V8 << VDD_ETH_PS_SHIFT) 1002ce4eaf4SVikas Manocha 1012ce4eaf4SVikas Manocha #define VDD_ETH_M_PS_SHIFT 28 1022ce4eaf4SVikas Manocha #define ETH_M_VDD_CFG (VDD_ETH_PS_1V8 << VDD_ETH_M_PS_SHIFT) 1032ce4eaf4SVikas Manocha 1049fa32b12SVikas Manocha #endif 105