Lines Matching +full:odd +full:- +full:parity
1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright (C) 2016, STMicroelectronics - All Rights Reserved
22 bool stm32f4 = uart_info->stm32f4; in _stm32_serial_setbrg()
45 _stm32_serial_setbrg(plat->base, plat->uart_info, in stm32_serial_setbrg()
46 plat->clock_rate, baudrate); in stm32_serial_setbrg()
54 bool stm32f4 = plat->uart_info->stm32f4; in stm32_serial_setconfig()
55 u8 uart_enable_bit = plat->uart_info->uart_enable_bit; in stm32_serial_setconfig()
56 u32 cr1 = plat->base + CR1_OFFSET(stm32f4); in stm32_serial_setconfig()
58 uint parity = SERIAL_GET_PARITY(serial_config); in stm32_serial_setconfig() local
63 * only parity config is implemented, check if other serial settings in stm32_serial_setconfig()
65 * (STM32F4 serial IP didn't support parity setting) in stm32_serial_setconfig()
68 return -ENOTSUPP; /* not supported in driver*/ in stm32_serial_setconfig()
72 * PCE: parity check enable in stm32_serial_setconfig()
73 * PS : '0' : Even / '1' : Odd in stm32_serial_setconfig()
75 * M[1:0] = '01' : 9 Data bits with parity in stm32_serial_setconfig()
77 switch (parity) { in stm32_serial_setconfig()
102 bool stm32f4 = plat->uart_info->stm32f4; in stm32_serial_getc()
103 fdt_addr_t base = plat->base; in stm32_serial_getc()
107 return -EAGAIN; in stm32_serial_getc()
115 return -EIO; in stm32_serial_getc()
125 bool stm32f4 = uart_info->stm32f4; in _stm32_serial_putc()
128 return -EAGAIN; in _stm32_serial_putc()
139 return _stm32_serial_putc(plat->base, plat->uart_info, c); in stm32_serial_putc()
145 bool stm32f4 = plat->uart_info->stm32f4; in stm32_serial_pending()
146 fdt_addr_t base = plat->base; in stm32_serial_pending()
159 bool stm32f4 = uart_info->stm32f4; in _stm32_serial_init()
160 u8 uart_enable_bit = uart_info->uart_enable_bit; in _stm32_serial_init()
162 /* Disable uart-> enable fifo -> enable uart */ in _stm32_serial_init()
165 if (uart_info->has_fifo) in _stm32_serial_init()
178 plat->uart_info = (struct stm32_uart_info *)dev_get_driver_data(dev); in stm32_serial_probe()
197 plat->clock_rate = clk_get_rate(&clk); in stm32_serial_probe()
198 if (plat->clock_rate < 0) { in stm32_serial_probe()
200 return plat->clock_rate; in stm32_serial_probe()
203 _stm32_serial_init(plat->base, plat->uart_info); in stm32_serial_probe()
209 { .compatible = "st,stm32-uart", .data = (ulong)&stm32f4_info},
210 { .compatible = "st,stm32f7-uart", .data = (ulong)&stm32f7_info},
211 { .compatible = "st,stm32h7-uart", .data = (ulong)&stm32h7_info},
219 plat->base = devfdt_get_addr(dev); in stm32_serial_ofdata_to_platdata()
220 if (plat->base == FDT_ADDR_T_NONE) in stm32_serial_ofdata_to_platdata()
221 return -EINVAL; in stm32_serial_ofdata_to_platdata()
280 while (_stm32_serial_putc(base, uart_info, c) == -EAGAIN) in _debug_uart_putc()