/*
 * Copyright (c) 2022 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */
#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_STM32H7_CLOCK_H_
#define ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_STM32H7_CLOCK_H_

/** Domain clocks */

/* RM0468, Table 56 Kernel clock dictribution summary */

/** PLL outputs */
#define STM32_SRC_PLL1_P	0x001
#define STM32_SRC_PLL1_Q	0x002
#define STM32_SRC_PLL1_R	0x003
#define STM32_SRC_PLL2_P	0x004
#define STM32_SRC_PLL2_Q	0x005
#define STM32_SRC_PLL2_R	0x006
#define STM32_SRC_PLL3_P	0x007
#define STM32_SRC_PLL3_Q	0x008
#define STM32_SRC_PLL3_R	0x009
/** Oscillators  */
#define STM32_SRC_HSE		0x00A
#define STM32_SRC_LSE		0x00B
#define STM32_SRC_LSI		0x00C
#define STM32_SRC_HSI48		0x00D
#define STM32_SRC_HSI_KER	0x00E /* HSI + HSIKERON */
#define STM32_SRC_CSI_KER	0x00F /* CSI + CSIKERON */
/** Core clock */
#define STM32_SRC_SYSCLK	0x010
/** Others: Not yet supported */
/* #define STM32_SRC_I2SCKIN	0x011 */
/* #define STM32_SRC_SPDIFRX	0x012 */
/** Clock muxes */
#define STM32_SRC_CKPER		0x013

/** Bus clocks */
#define STM32_CLOCK_BUS_AHB3    0x0D4
#define STM32_CLOCK_BUS_AHB1    0x0D8
#define STM32_CLOCK_BUS_AHB2    0x0DC
#define STM32_CLOCK_BUS_AHB4    0x0E0
#define STM32_CLOCK_BUS_APB3    0x0E4
#define STM32_CLOCK_BUS_APB1    0x0E8
#define STM32_CLOCK_BUS_APB1_2  0x0EC
#define STM32_CLOCK_BUS_APB2    0x0F0
#define STM32_CLOCK_BUS_APB4    0x0F4
/** Alias D1/2/3 domains clocks */ /* TBD: To remove ? */
#define STM32_SRC_PCLK1		STM32_CLOCK_BUS_APB1
#define STM32_SRC_PCLK2		STM32_CLOCK_BUS_APB2
#define STM32_SRC_HCLK3		STM32_CLOCK_BUS_AHB3
#define STM32_SRC_PCLK3		STM32_CLOCK_BUS_APB3
#define STM32_SRC_PCLK4		STM32_CLOCK_BUS_APB4

#define STM32_PERIPH_BUS_MIN	STM32_CLOCK_BUS_AHB3
#define STM32_PERIPH_BUS_MAX	STM32_CLOCK_BUS_APB4

#define STM32_CLOCK_REG_MASK    0xFFU
#define STM32_CLOCK_REG_SHIFT   0U
#define STM32_CLOCK_SHIFT_MASK  0x1FU
#define STM32_CLOCK_SHIFT_SHIFT 8U
#define STM32_CLOCK_MASK_MASK   0x7U
#define STM32_CLOCK_MASK_SHIFT  13U
#define STM32_CLOCK_VAL_MASK    0x7U
#define STM32_CLOCK_VAL_SHIFT   16U

/**
 * @brief STM32H7 clock configuration bit field.
 *
 * - reg   (0/1)           [ 0 : 7 ]
 * - shift (0..31)         [ 8 : 12 ]
 * - mask  (0x1, 0x3, 0x7) [ 13 : 15 ]
 * - val   (0..3)          [ 16 : 18 ]
 *
 * @param reg RCC_DxCCIP register offset
 * @param shift Position within RCC_DxCCIP.
 * @param mask Mask for the RCC_DxCCIP field.
 * @param val Clock value (0, 1, 2 or 3).
 */
#define STM32_CLOCK(val, mask, shift, reg)					\
	((((reg) & STM32_CLOCK_REG_MASK) << STM32_CLOCK_REG_SHIFT) |	\
	 (((shift) & STM32_CLOCK_SHIFT_MASK) << STM32_CLOCK_SHIFT_SHIFT) |	\
	 (((mask) & STM32_CLOCK_MASK_MASK) << STM32_CLOCK_MASK_SHIFT) |	\
	 (((val) & STM32_CLOCK_VAL_MASK) << STM32_CLOCK_VAL_SHIFT))

/** @brief RCC_DxCCIP register offset (RM0399.pdf) */
#define D1CCIPR_REG		0x4C
#define D2CCIP1R_REG		0x50
#define D2CCIP2R_REG		0x54
#define D3CCIPR_REG		0x58

/** @brief RCC_BDCR register offset */
#define BDCR_REG		0x70

/** @brief Device domain clocks selection helpers (RM0399.pdf) */
/** D1CCIPR devices */
#define FMC_SEL(val)		STM32_CLOCK(val, 3, 0, D1CCIPR_REG)
#define QSPI_SEL(val)		STM32_CLOCK(val, 3, 4, D1CCIPR_REG)
#define DSI_SEL(val)		STM32_CLOCK(val, 1, 8, D1CCIPR_REG)
#define SDMMC_SEL(val)		STM32_CLOCK(val, 1, 16, D1CCIPR_REG)
#define CKPER_SEL(val)		STM32_CLOCK(val, 3, 28, D1CCIPR_REG)
/* Device domain clocks selection helpers (RM0468.pdf) */
#define OSPI_SEL(val)		STM32_CLOCK(val, 3, 4, D1CCIPR_REG)
/** D2CCIP1R devices */
#define SAI1_SEL(val)		STM32_CLOCK(val, 7, 0, D2CCIP1R_REG)
#define SAI23_SEL(val)		STM32_CLOCK(val, 7, 6, D2CCIP1R_REG)
#define SPI123_SEL(val)		STM32_CLOCK(val, 7, 12, D2CCIP1R_REG)
#define SPI45_SEL(val)		STM32_CLOCK(val, 7, 16, D2CCIP1R_REG)
#define SPDIF_SEL(val)		STM32_CLOCK(val, 3, 20, D2CCIP1R_REG)
#define DFSDM1_SEL(val)		STM32_CLOCK(val, 1, 24, D2CCIP1R_REG)
#define FDCAN_SEL(val)		STM32_CLOCK(val, 3, 28, D2CCIP1R_REG)
#define SWP_SEL(val)		STM32_CLOCK(val, 1, 31, D2CCIP1R_REG)
/** D2CCIP2R devices */
#define USART2345678_SEL(val)	STM32_CLOCK(val, 7, 0, D2CCIP2R_REG)
#define USART16_SEL(val)	STM32_CLOCK(val, 7, 3, D2CCIP2R_REG)
#define RNG_SEL(val)		STM32_CLOCK(val, 3, 8, D2CCIP2R_REG)
#define I2C123_SEL(val)		STM32_CLOCK(val, 3, 12, D2CCIP2R_REG)
#define USB_SEL(val)		STM32_CLOCK(val, 3, 20, D2CCIP2R_REG)
#define CEC_SEL(val)		STM32_CLOCK(val, 3, 22, D2CCIP2R_REG)
#define LPTIM1_SEL(val)		STM32_CLOCK(val, 7, 28, D2CCIP2R_REG)
/** D3CCIPR devices */
#define LPUART1_SEL(val)	STM32_CLOCK(val, 7, 0, D3CCIPR_REG)
#define I2C4_SEL(val)		STM32_CLOCK(val, 3, 8, D3CCIPR_REG)
#define LPTIM2_SEL(val)		STM32_CLOCK(val, 7, 10, D3CCIPR_REG)
#define LPTIM345_SEL(val)	STM32_CLOCK(val, 7, 13, D3CCIPR_REG)
#define ADC_SEL(val)		STM32_CLOCK(val, 3, 16, D3CCIPR_REG)
#define SAI4A_SEL(val)		STM32_CLOCK(val, 7, 21, D3CCIPR_REG)
#define SAI4B_SEL(val)		STM32_CLOCK(val, 7, 24, D3CCIPR_REG)
#define SPI6_SEL(val)		STM32_CLOCK(val, 7, 28, D3CCIPR_REG)
/** BDCR devices */
#define RTC_SEL(val)		STM32_CLOCK(val, 3, 8, BDCR_REG)

#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_STM32H7_CLOCK_H_ */
