platform.h 1006 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * SPDX-License-Identifier: BSD-2-Clause
  3. *
  4. * Copyright (c) 2019 Western Digital Corporation or its affiliates.
  5. *
  6. * Authors:
  7. * Damien Le Moal <damien.lemoal@wdc.com>
  8. */
  9. #ifndef _K210_PLATFORM_H_
  10. #define _K210_PLATFORM_H_
  11. #include <sbi/riscv_io.h>
  12. #define K210_HART_COUNT 2
  13. #define K210_UART_BAUDRATE 115200
  14. #define K210_CLK0_FREQ 26000000UL
  15. #define K210_PLIC_NUM_SOURCES 65
  16. /* Registers base address */
  17. #define K210_SYSCTL_BASE_ADDR 0x50440000ULL
  18. #define K210_UART_BASE_ADDR 0x38000000ULL
  19. #define K210_CLINT_BASE_ADDR 0x02000000ULL
  20. #define K210_PLIC_BASE_ADDR 0x0C000000ULL
  21. /* Registers */
  22. #define K210_PLL0 0x08
  23. #define K210_CLKSEL0 0x20
  24. #define K210_RESET 0x30
  25. /* Register bit masks */
  26. #define K210_RESET_MASK 0x01
  27. static inline u32 k210_read_sysreg(u32 reg)
  28. {
  29. return readl((volatile void *)(K210_SYSCTL_BASE_ADDR + reg));
  30. }
  31. static inline void k210_write_sysreg(u32 val, u32 reg)
  32. {
  33. writel(val, (volatile void *)(K210_SYSCTL_BASE_ADDR + reg));
  34. }
  35. #endif /* _K210_PLATFORM_H_ */