stv0991_creg.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. #ifndef _STV0991_CREG_H
  7. #define _STV0991_CREG_H
  8. struct stv0991_creg {
  9. u32 version; /* offset 0x0 */
  10. u32 hdpctl; /* offset 0x4 */
  11. u32 hdpval; /* offset 0x8 */
  12. u32 hdpgposet; /* offset 0xc */
  13. u32 hdpgpoclr; /* offset 0x10 */
  14. u32 hdpgpoval; /* offset 0x14 */
  15. u32 stm_mux; /* offset 0x18 */
  16. u32 sysctrl_1; /* offset 0x1c */
  17. u32 sysctrl_2; /* offset 0x20 */
  18. u32 sysctrl_3; /* offset 0x24 */
  19. u32 sysctrl_4; /* offset 0x28 */
  20. u32 reserved_1[0x35]; /* offset 0x2C-0xFC */
  21. u32 mux1; /* offset 0x100 */
  22. u32 mux2; /* offset 0x104 */
  23. u32 mux3; /* offset 0x108 */
  24. u32 mux4; /* offset 0x10c */
  25. u32 mux5; /* offset 0x110 */
  26. u32 mux6; /* offset 0x114 */
  27. u32 mux7; /* offset 0x118 */
  28. u32 mux8; /* offset 0x11c */
  29. u32 mux9; /* offset 0x120 */
  30. u32 mux10; /* offset 0x124 */
  31. u32 mux11; /* offset 0x128 */
  32. u32 mux12; /* offset 0x12c */
  33. u32 mux13; /* offset 0x130 */
  34. u32 reserved_2[0x33]; /* offset 0x134-0x1FC */
  35. u32 cfg_pad1; /* offset 0x200 */
  36. u32 cfg_pad2; /* offset 0x204 */
  37. u32 cfg_pad3; /* offset 0x208 */
  38. u32 cfg_pad4; /* offset 0x20c */
  39. u32 cfg_pad5; /* offset 0x210 */
  40. u32 cfg_pad6; /* offset 0x214 */
  41. u32 cfg_pad7; /* offset 0x218 */
  42. u32 reserved_3[0x39]; /* offset 0x21C-0x2FC */
  43. u32 vdd_pad1; /* offset 0x300 */
  44. u32 vdd_pad2; /* offset 0x304 */
  45. u32 reserved_4[0x3e]; /* offset 0x308-0x3FC */
  46. u32 vdd_comp1; /* offset 0x400 */
  47. };
  48. /* CREG MUX 13 register */
  49. #define FLASH_CS_NC_SHIFT 4
  50. #define FLASH_CS_NC_MASK ~(7 << FLASH_CS_NC_SHIFT)
  51. #define CFG_FLASH_CS_NC (0 << FLASH_CS_NC_SHIFT)
  52. #define FLASH_CLK_SHIFT 0
  53. #define FLASH_CLK_MASK ~(7 << FLASH_CLK_SHIFT)
  54. #define CFG_FLASH_CLK (0 << FLASH_CLK_SHIFT)
  55. /* CREG MUX 12 register */
  56. #define GPIOC_30_MUX_SHIFT 24
  57. #define GPIOC_30_MUX_MASK ~(1 << GPIOC_30_MUX_SHIFT)
  58. #define CFG_GPIOC_30_UART_TX (1 << GPIOC_30_MUX_SHIFT)
  59. #define GPIOC_31_MUX_SHIFT 28
  60. #define GPIOC_31_MUX_MASK ~(1 << GPIOC_31_MUX_SHIFT)
  61. #define CFG_GPIOC_31_UART_RX (1 << GPIOC_31_MUX_SHIFT)
  62. /* CREG MUX 7 register */
  63. #define GPIOB_16_MUX_SHIFT 0
  64. #define GPIOB_16_MUX_MASK ~(1 << GPIOB_16_MUX_SHIFT)
  65. #define CFG_GPIOB_16_UART_TX (1 << GPIOB_16_MUX_SHIFT)
  66. #define GPIOB_17_MUX_SHIFT 4
  67. #define GPIOB_17_MUX_MASK ~(1 << GPIOB_17_MUX_SHIFT)
  68. #define CFG_GPIOB_17_UART_RX (1 << GPIOB_17_MUX_SHIFT)
  69. /* CREG CFG_PAD6 register */
  70. #define GPIOC_31_MODE_SHIFT 30
  71. #define GPIOC_31_MODE_MASK ~(1 << GPIOC_31_MODE_SHIFT)
  72. #define CFG_GPIOC_31_MODE_OD (0 << GPIOC_31_MODE_SHIFT)
  73. #define CFG_GPIOC_31_MODE_PP (1 << GPIOC_31_MODE_SHIFT)
  74. #define GPIOC_30_MODE_SHIFT 28
  75. #define GPIOC_30_MODE_MASK ~(1 << GPIOC_30_MODE_SHIFT)
  76. #define CFG_GPIOC_30_MODE_LOW (0 << GPIOC_30_MODE_SHIFT)
  77. #define CFG_GPIOC_30_MODE_HIGH (1 << GPIOC_30_MODE_SHIFT)
  78. /* CREG Ethernet pad config */
  79. #define VDD_ETH_PS_1V8 0
  80. #define VDD_ETH_PS_2V5 2
  81. #define VDD_ETH_PS_3V3 3
  82. #define VDD_ETH_PS_MASK 0x3
  83. #define VDD_ETH_PS_SHIFT 12
  84. #define ETH_VDD_CFG (VDD_ETH_PS_1V8 << VDD_ETH_PS_SHIFT)
  85. #define VDD_ETH_M_PS_SHIFT 28
  86. #define ETH_M_VDD_CFG (VDD_ETH_PS_1V8 << VDD_ETH_M_PS_SHIFT)
  87. #endif