Manivannan Sadhasivam | 91a8513 | 2018-06-14 23:38:35 +0530 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
| 2 | /* |
Amit Singh Tomar | 8821be4 | 2020-04-19 19:28:30 +0530 | [diff] [blame] | 3 | * Actions Semi SoCs Clock Definitions |
Manivannan Sadhasivam | 91a8513 | 2018-06-14 23:38:35 +0530 | [diff] [blame] | 4 | * |
| 5 | * Copyright (C) 2015 Actions Semi Co., Ltd. |
| 6 | * Copyright (C) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| 7 | * |
| 8 | */ |
| 9 | |
Amit Singh Tomar | 8821be4 | 2020-04-19 19:28:30 +0530 | [diff] [blame] | 10 | #ifndef _OWL_CLK_H_ |
| 11 | #define _OWL_CLK_H_ |
Manivannan Sadhasivam | 91a8513 | 2018-06-14 23:38:35 +0530 | [diff] [blame] | 12 | |
| 13 | #include <clk-uclass.h> |
Simon Glass | 4dcacfc | 2020-05-10 11:40:13 -0600 | [diff] [blame] | 14 | #ifndef __ASSEMBLY__ |
| 15 | #include <linux/bitops.h> |
| 16 | #endif |
Manivannan Sadhasivam | 91a8513 | 2018-06-14 23:38:35 +0530 | [diff] [blame] | 17 | |
Amit Singh Tomar | 8821be4 | 2020-04-19 19:28:30 +0530 | [diff] [blame] | 18 | enum owl_soc { |
| 19 | S700, |
| 20 | S900, |
| 21 | }; |
| 22 | |
Manivannan Sadhasivam | 91a8513 | 2018-06-14 23:38:35 +0530 | [diff] [blame] | 23 | struct owl_clk_priv { |
| 24 | phys_addr_t base; |
| 25 | }; |
| 26 | |
| 27 | /* BUSCLK register definitions */ |
| 28 | #define CMU_PDBGDIV_8 7 |
| 29 | #define CMU_PDBGDIV_SHIFT 26 |
| 30 | #define CMU_PDBGDIV_DIV (CMU_PDBGDIV_8 << CMU_PDBGDIV_SHIFT) |
| 31 | #define CMU_PERDIV_8 7 |
| 32 | #define CMU_PERDIV_SHIFT 20 |
| 33 | #define CMU_PERDIV_DIV (CMU_PERDIV_8 << CMU_PERDIV_SHIFT) |
| 34 | #define CMU_NOCDIV_2 1 |
| 35 | #define CMU_NOCDIV_SHIFT 19 |
| 36 | #define CMU_NOCDIV_DIV (CMU_NOCDIV_2 << CMU_NOCDIV_SHIFT) |
| 37 | #define CMU_DMMCLK_SRC_APLL 2 |
| 38 | #define CMU_DMMCLK_SRC_SHIFT 10 |
| 39 | #define CMU_DMMCLK_SRC (CMU_DMMCLK_SRC_APLL << CMU_DMMCLK_SRC_SHIFT) |
| 40 | #define CMU_APBCLK_DIV BIT(8) |
| 41 | #define CMU_NOCCLK_SRC BIT(7) |
| 42 | #define CMU_AHBCLK_DIV BIT(4) |
| 43 | #define CMU_CORECLK_MASK 3 |
| 44 | #define CMU_CORECLK_CPLL BIT(1) |
| 45 | #define CMU_CORECLK_HOSC BIT(0) |
| 46 | |
| 47 | /* COREPLL register definitions */ |
| 48 | #define CMU_COREPLL_EN BIT(9) |
| 49 | #define CMU_COREPLL_HOSC_EN BIT(8) |
| 50 | #define CMU_COREPLL_OUT (1104 / 24) |
| 51 | |
| 52 | /* DEVPLL register definitions */ |
| 53 | #define CMU_DEVPLL_CLK BIT(12) |
| 54 | #define CMU_DEVPLL_EN BIT(8) |
| 55 | #define CMU_DEVPLL_OUT (660 / 6) |
| 56 | |
| 57 | /* UARTCLK register definitions */ |
| 58 | #define CMU_UARTCLK_SRC_DEVPLL BIT(16) |
| 59 | |
Amit Singh Tomar | 8821be4 | 2020-04-19 19:28:30 +0530 | [diff] [blame] | 60 | #define PLL_STABILITY_WAIT_US 50 |
| 61 | |
Manivannan Sadhasivam | 91a8513 | 2018-06-14 23:38:35 +0530 | [diff] [blame] | 62 | #define CMU_DEVCLKEN1_UART5 BIT(21) |
Amit Singh Tomar | 8821be4 | 2020-04-19 19:28:30 +0530 | [diff] [blame] | 63 | #define CMU_DEVCLKEN1_UART3 BIT(11) |
Manivannan Sadhasivam | 91a8513 | 2018-06-14 23:38:35 +0530 | [diff] [blame] | 64 | |
Manivannan Sadhasivam | 91a8513 | 2018-06-14 23:38:35 +0530 | [diff] [blame] | 65 | #endif |