rt305x.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. *
  4. * Parts of this file are based on Ralink's 2.6.21 BSP
  5. *
  6. * Copyright (C) 2008-2011 Gabor Juhos <[email protected]>
  7. * Copyright (C) 2008 Imre Kaloz <[email protected]>
  8. * Copyright (C) 2013 John Crispin <[email protected]>
  9. */
  10. #ifndef _RT305X_REGS_H_
  11. #define _RT305X_REGS_H_
  12. extern enum ralink_soc_type ralink_soc;
  13. static inline int soc_is_rt3050(void)
  14. {
  15. return ralink_soc == RT305X_SOC_RT3050;
  16. }
  17. static inline int soc_is_rt3052(void)
  18. {
  19. return ralink_soc == RT305X_SOC_RT3052;
  20. }
  21. static inline int soc_is_rt305x(void)
  22. {
  23. return soc_is_rt3050() || soc_is_rt3052();
  24. }
  25. static inline int soc_is_rt3350(void)
  26. {
  27. return ralink_soc == RT305X_SOC_RT3350;
  28. }
  29. static inline int soc_is_rt3352(void)
  30. {
  31. return ralink_soc == RT305X_SOC_RT3352;
  32. }
  33. static inline int soc_is_rt5350(void)
  34. {
  35. return ralink_soc == RT305X_SOC_RT5350;
  36. }
  37. #define RT305X_SYSC_BASE 0x10000000
  38. #define SYSC_REG_CHIP_NAME0 0x00
  39. #define SYSC_REG_CHIP_NAME1 0x04
  40. #define SYSC_REG_CHIP_ID 0x0c
  41. #define SYSC_REG_SYSTEM_CONFIG 0x10
  42. #define RT3052_CHIP_NAME0 0x30335452
  43. #define RT3052_CHIP_NAME1 0x20203235
  44. #define RT3350_CHIP_NAME0 0x33335452
  45. #define RT3350_CHIP_NAME1 0x20203035
  46. #define RT3352_CHIP_NAME0 0x33335452
  47. #define RT3352_CHIP_NAME1 0x20203235
  48. #define RT5350_CHIP_NAME0 0x33355452
  49. #define RT5350_CHIP_NAME1 0x20203035
  50. #define CHIP_ID_ID_MASK 0xff
  51. #define CHIP_ID_ID_SHIFT 8
  52. #define CHIP_ID_REV_MASK 0xff
  53. #define RT305X_SYSCFG_CPUCLK_SHIFT 18
  54. #define RT305X_SYSCFG_CPUCLK_MASK 0x1
  55. #define RT305X_SYSCFG_CPUCLK_LOW 0x0
  56. #define RT305X_SYSCFG_CPUCLK_HIGH 0x1
  57. #define RT305X_SYSCFG_SRAM_CS0_MODE_SHIFT 2
  58. #define RT305X_SYSCFG_CPUCLK_MASK 0x1
  59. #define RT305X_SYSCFG_SRAM_CS0_MODE_WDT 0x1
  60. #define RT3352_SYSCFG0_CPUCLK_SHIFT 8
  61. #define RT3352_SYSCFG0_CPUCLK_MASK 0x1
  62. #define RT3352_SYSCFG0_CPUCLK_LOW 0x0
  63. #define RT3352_SYSCFG0_CPUCLK_HIGH 0x1
  64. #define RT5350_SYSCFG0_CPUCLK_SHIFT 8
  65. #define RT5350_SYSCFG0_CPUCLK_MASK 0x3
  66. #define RT5350_SYSCFG0_CPUCLK_360 0x0
  67. #define RT5350_SYSCFG0_CPUCLK_320 0x2
  68. #define RT5350_SYSCFG0_CPUCLK_300 0x3
  69. #define RT5350_SYSCFG0_DRAM_SIZE_SHIFT 12
  70. #define RT5350_SYSCFG0_DRAM_SIZE_MASK 7
  71. #define RT5350_SYSCFG0_DRAM_SIZE_2M 0
  72. #define RT5350_SYSCFG0_DRAM_SIZE_8M 1
  73. #define RT5350_SYSCFG0_DRAM_SIZE_16M 2
  74. #define RT5350_SYSCFG0_DRAM_SIZE_32M 3
  75. #define RT5350_SYSCFG0_DRAM_SIZE_64M 4
  76. /* multi function gpio pins */
  77. #define RT305X_GPIO_I2C_SD 1
  78. #define RT305X_GPIO_I2C_SCLK 2
  79. #define RT305X_GPIO_SPI_EN 3
  80. #define RT305X_GPIO_SPI_CLK 4
  81. /* GPIO 7-14 is shared between UART0, PCM and I2S interfaces */
  82. #define RT305X_GPIO_7 7
  83. #define RT305X_GPIO_10 10
  84. #define RT305X_GPIO_14 14
  85. #define RT305X_GPIO_UART1_TXD 15
  86. #define RT305X_GPIO_UART1_RXD 16
  87. #define RT305X_GPIO_JTAG_TDO 17
  88. #define RT305X_GPIO_JTAG_TDI 18
  89. #define RT305X_GPIO_MDIO_MDC 22
  90. #define RT305X_GPIO_MDIO_MDIO 23
  91. #define RT305X_GPIO_SDRAM_MD16 24
  92. #define RT305X_GPIO_SDRAM_MD31 39
  93. #define RT305X_GPIO_GE0_TXD0 40
  94. #define RT305X_GPIO_GE0_RXCLK 51
  95. #define RT3352_SYSC_REG_SYSCFG0 0x010
  96. #define RT3352_SYSC_REG_SYSCFG1 0x014
  97. #define RT3352_SYSC_REG_CLKCFG1 0x030
  98. #define RT3352_SYSC_REG_RSTCTRL 0x034
  99. #define RT3352_SYSC_REG_USB_PS 0x05c
  100. #define RT3352_CLKCFG0_XTAL_SEL BIT(20)
  101. #define RT3352_CLKCFG1_UPHY0_CLK_EN BIT(18)
  102. #define RT3352_CLKCFG1_UPHY1_CLK_EN BIT(20)
  103. #define RT3352_RSTCTRL_UHST BIT(22)
  104. #define RT3352_RSTCTRL_UDEV BIT(25)
  105. #define RT3352_SYSCFG1_USB0_HOST_MODE BIT(10)
  106. #define RT305X_SDRAM_BASE 0x00000000
  107. #define RT305X_MEM_SIZE_MIN 2
  108. #define RT305X_MEM_SIZE_MAX 64
  109. #define RT3352_MEM_SIZE_MIN 2
  110. #define RT3352_MEM_SIZE_MAX 256
  111. #endif