Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * Copyright (C) STMicroelectronics SA 2017 - All Rights Reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  * Author:   Gerald Baeza <gerald.baeza@st.com> for STMicroelectronics.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) #ifdef CONFIG_STM32F4_DEBUG_UART
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #define STM32_USART_SR_OFF		0x00
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #define STM32_USART_TDR_OFF		0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #if defined(CONFIG_STM32F7_DEBUG_UART) || defined(CONFIG_STM32H7_DEBUG_UART) || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 	defined(CONFIG_STM32MP1_DEBUG_UART)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define STM32_USART_SR_OFF		0x1C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define STM32_USART_TDR_OFF		0x28
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #define STM32_USART_TC			(1 << 6)	/* Tx complete       */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define STM32_USART_TXE			(1 << 7)	/* Tx data reg empty */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) .macro	addruart, rp, rv, tmp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	ldr	\rp, =CONFIG_DEBUG_UART_PHYS @ physical base
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	ldr	\rv, =CONFIG_DEBUG_UART_VIRT @ virt base
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) .endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) .macro  senduart,rd,rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	strb    \rd, [\rx, #STM32_USART_TDR_OFF]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) .endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) .macro	waituartcts,rd,rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) .endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) .macro  waituarttxrdy,rd,rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 1001:	ldr	\rd, [\rx, #(STM32_USART_SR_OFF)]	@ Read Status Register
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	tst	\rd, #STM32_USART_TXE			@ TXE = 1 = tx empty
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	beq	1001b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) .endm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) .macro  busyuart,rd,rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 1001:	ldr	\rd, [\rx, #(STM32_USART_SR_OFF)]	@ Read Status Register
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	tst	\rd, #STM32_USART_TC			@ TC = 1 = tx complete
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	beq	1001b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) .endm