drivers: uart_sam0: move sercom pad info to dts

Move the setting of the SERCOM PAD for rxpo/txpo for the uart driver
into device tree out of board.h

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
Kumar Gala 2018-11-01 04:46:46 -05:00 committed by Kumar Gala
commit 6d08958ad5
14 changed files with 61 additions and 33 deletions

View file

@ -37,6 +37,8 @@
status = "ok";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <3>;
txpo = <1>;
};
&sercom4 {

View file

@ -9,9 +9,6 @@
#include <soc.h>
#define CONFIG_UART_SAM0_SERCOM0_PADS \
(SERCOM_USART_CTRLA_RXPO(3) | SERCOM_USART_CTRLA_TXPO(1))
#define CONFIG_SPI_SAM0_SERCOM4_PADS \
(SERCOM_SPI_CTRLA_DIPO(0) | SERCOM_SPI_CTRLA_DOPO(1))

View file

@ -36,12 +36,16 @@
status = "ok";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <3>;
txpo = <1>;
};
&sercom2 {
status = "ok";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <1>;
txpo = <0>;
};
/* Drives the on-board DotStar LED */

View file

@ -9,11 +9,6 @@
#include <soc.h>
#define CONFIG_UART_SAM0_SERCOM0_PADS \
(SERCOM_USART_CTRLA_RXPO(3) | SERCOM_USART_CTRLA_TXPO(1))
#define CONFIG_UART_SAM0_SERCOM2_PADS \
(SERCOM_USART_CTRLA_RXPO(1) | SERCOM_USART_CTRLA_TXPO(0))
#define CONFIG_SPI_SAM0_SERCOM0_PADS \
(SERCOM_SPI_CTRLA_DIPO(0) | SERCOM_SPI_CTRLA_DOPO(1))

View file

@ -46,12 +46,16 @@
status = "ok";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <3>;
txpo = <1>;
};
&sercom5 {
status = "ok";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <3>;
txpo = <1>;
};
&sercom4 {

View file

@ -9,11 +9,6 @@
#include <soc.h>
#define CONFIG_UART_SAM0_SERCOM0_PADS \
(SERCOM_USART_CTRLA_RXPO(3) | SERCOM_USART_CTRLA_TXPO(1))
#define CONFIG_UART_SAM0_SERCOM5_PADS \
(SERCOM_USART_CTRLA_RXPO(3) | SERCOM_USART_CTRLA_TXPO(1))
#define CONFIG_SPI_SAM0_SERCOM4_PADS \
(SERCOM_SPI_CTRLA_DIPO(0) | SERCOM_SPI_CTRLA_DOPO(1))

View file

@ -48,12 +48,16 @@
status = "ok";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <3>;
txpo = <2>;
};
&sercom4 {
status = "ok";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <1>;
txpo = <0>;
};
&flash0 {

View file

@ -12,10 +12,4 @@
#define CONFIG_SPI_SAM0_SERCOM0_PADS \
(SERCOM_SPI_CTRLA_DIPO(0) | SERCOM_SPI_CTRLA_DOPO(2))
#define CONFIG_UART_SAM0_SERCOM3_PADS \
(SERCOM_USART_CTRLA_RXPO_PAD3 | SERCOM_USART_CTRLA_TXPO_PAD2)
#define CONFIG_UART_SAM0_SERCOM4_PADS \
(SERCOM_USART_CTRLA_TXPO_PAD0 | SERCOM_USART_CTRLA_RXPO_PAD1)
#endif /* __INC_BOARD_H */

View file

@ -35,18 +35,24 @@
status = "ok";
compatible = "atmel,sam0-uart";
current-speed = <9600>;
rxpo = <3>;
txpo = <2>;
};
&sercom1 {
status = "ok";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <3>;
txpo = <0>;
};
&sercom3 {
status = "ok";
compatible = "atmel,sam0-uart";
current-speed = <115200>;
rxpo = <1>;
txpo = <0>;
};
&sercom5 {

View file

@ -9,18 +9,6 @@
#include <soc.h>
/* SERCOM0 on RX=PA11, TX=PA10 */
#define CONFIG_UART_SAM0_SERCOM0_PADS \
(SERCOM_USART_CTRLA_RXPO(3) | SERCOM_USART_CTRLA_TXPO(2))
/* SERCOM1 ON RX=PA19, TX=PA16 */
#define CONFIG_UART_SAM0_SERCOM1_PADS \
(SERCOM_USART_CTRLA_RXPO(3) | SERCOM_USART_CTRLA_TXPO(0))
/* SERCOM3 ON RX=PA23, TX=PA22 */
#define CONFIG_UART_SAM0_SERCOM3_PADS \
(SERCOM_USART_CTRLA_RXPO(1) | SERCOM_USART_CTRLA_TXPO(0))
/* SPI SERCOM5 on MISO=PB16/pad 0, MOSI=PB22/pad 2, SCK=PB23/pad 3 */
#define CONFIG_SPI_SAM0_SERCOM5_PADS \
(SERCOM_SPI_CTRLA_DIPO(0) | SERCOM_SPI_CTRLA_DOPO(2))

View file

@ -10,7 +10,6 @@
#include <misc/__assert.h>
#include <soc.h>
#include <uart.h>
#include <board.h>
/* Device constant configuration parameters */
struct uart_sam0_dev_cfg {
@ -289,13 +288,17 @@ static void uart_sam0_irq_config_##n(struct device *dev) \
#define UART_SAM0_IRQ_HANDLER(n)
#endif
#define CONFIG_UART_SAM0_SERCOM_PADS(n) \
(CONFIG_UART_SAM0_SERCOM##n##_RXPO << SERCOM_USART_CTRLA_RXPO_Pos) | \
(CONFIG_UART_SAM0_SERCOM##n##_TXPO << SERCOM_USART_CTRLA_TXPO_Pos)
#define UART_SAM0_CONFIG_DEFN(n) \
static const struct uart_sam0_dev_cfg uart_sam0_config_##n = { \
.regs = (SercomUsart *)CONFIG_UART_SAM0_SERCOM##n##_BASE_ADDRESS, \
.baudrate = CONFIG_UART_SAM0_SERCOM##n##_CURRENT_SPEED, \
.pm_apbcmask = PM_APBCMASK_SERCOM##n, \
.gclk_clkctrl_id = GCLK_CLKCTRL_ID_SERCOM##n##_CORE, \
.pads = CONFIG_UART_SAM0_SERCOM##n##_PADS, \
.pads = CONFIG_UART_SAM0_SERCOM_PADS(n), \
UART_SAM0_IRQ_HANDLER_FUNC(n) \
}

View file

@ -23,4 +23,16 @@ properties:
category: required
description: required interrupts
generation: define
rxpo:
type: int
category: required
description: Receive Data Pinout
generation: define
txpo:
type: int
category: required
description: Transmit Data Pinout
generation: define
...

View file

@ -14,36 +14,48 @@
#define CONFIG_UART_SAM0_SERCOM0_IRQ_PRIORITY ATMEL_SAM0_UART_42000800_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM0_LABEL ATMEL_SAM0_UART_42000800_LABEL
#define CONFIG_UART_SAM0_SERCOM0_BASE_ADDRESS ATMEL_SAM0_UART_42000800_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM0_RXPO ATMEL_SAM0_UART_42000800_RXPO
#define CONFIG_UART_SAM0_SERCOM0_TXPO ATMEL_SAM0_UART_42000800_TXPO
#define CONFIG_UART_SAM0_SERCOM1_CURRENT_SPEED ATMEL_SAM0_UART_42000C00_CURRENT_SPEED
#define CONFIG_UART_SAM0_SERCOM1_IRQ ATMEL_SAM0_UART_42000C00_IRQ_0
#define CONFIG_UART_SAM0_SERCOM1_IRQ_PRIORITY ATMEL_SAM0_UART_42000C00_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM1_LABEL ATMEL_SAM0_UART_42000C00_LABEL
#define CONFIG_UART_SAM0_SERCOM1_BASE_ADDRESS ATMEL_SAM0_UART_42000C00_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM1_RXPO ATMEL_SAM0_UART_42000C00_RXPO
#define CONFIG_UART_SAM0_SERCOM1_TXPO ATMEL_SAM0_UART_42000C00_TXPO
#define CONFIG_UART_SAM0_SERCOM2_CURRENT_SPEED ATMEL_SAM0_UART_42001000_CURRENT_SPEED
#define CONFIG_UART_SAM0_SERCOM2_IRQ ATMEL_SAM0_UART_42001000_IRQ_0
#define CONFIG_UART_SAM0_SERCOM2_IRQ_PRIORITY ATMEL_SAM0_UART_42001000_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM2_LABEL ATMEL_SAM0_UART_42001000_LABEL
#define CONFIG_UART_SAM0_SERCOM2_BASE_ADDRESS ATMEL_SAM0_UART_42001000_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM2_RXPO ATMEL_SAM0_UART_42001000_RXPO
#define CONFIG_UART_SAM0_SERCOM2_TXPO ATMEL_SAM0_UART_42001000_TXPO
#define CONFIG_UART_SAM0_SERCOM3_CURRENT_SPEED ATMEL_SAM0_UART_42001400_CURRENT_SPEED
#define CONFIG_UART_SAM0_SERCOM3_IRQ ATMEL_SAM0_UART_42001400_IRQ_0
#define CONFIG_UART_SAM0_SERCOM3_IRQ_PRIORITY ATMEL_SAM0_UART_42001400_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM3_LABEL ATMEL_SAM0_UART_42001400_LABEL
#define CONFIG_UART_SAM0_SERCOM3_BASE_ADDRESS ATMEL_SAM0_UART_42001400_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM3_RXPO ATMEL_SAM0_UART_42001400_RXPO
#define CONFIG_UART_SAM0_SERCOM3_TXPO ATMEL_SAM0_UART_42001400_TXPO
#define CONFIG_UART_SAM0_SERCOM4_CURRENT_SPEED ATMEL_SAM0_UART_42001800_CURRENT_SPEED
#define CONFIG_UART_SAM0_SERCOM4_IRQ ATMEL_SAM0_UART_42001800_IRQ_0
#define CONFIG_UART_SAM0_SERCOM4_IRQ_PRIORITY ATMEL_SAM0_UART_42001800_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM4_LABEL ATMEL_SAM0_UART_42001800_LABEL
#define CONFIG_UART_SAM0_SERCOM4_BASE_ADDRESS ATMEL_SAM0_UART_42001800_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM4_RXPO ATMEL_SAM0_UART_42001800_RXPO
#define CONFIG_UART_SAM0_SERCOM4_TXPO ATMEL_SAM0_UART_42001800_TXPO
#define CONFIG_UART_SAM0_SERCOM5_CURRENT_SPEED ATMEL_SAM0_UART_42001C00_CURRENT_SPEED
#define CONFIG_UART_SAM0_SERCOM5_IRQ ATMEL_SAM0_UART_42001C00_IRQ_0
#define CONFIG_UART_SAM0_SERCOM5_IRQ_PRIORITY ATMEL_SAM0_UART_42001C00_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM5_LABEL ATMEL_SAM0_UART_42001C00_LABEL
#define CONFIG_UART_SAM0_SERCOM5_BASE_ADDRESS ATMEL_SAM0_UART_42001C00_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM5_RXPO ATMEL_SAM0_UART_42001C00_RXPO
#define CONFIG_UART_SAM0_SERCOM5_TXPO ATMEL_SAM0_UART_42001C00_TXPO
#define CONFIG_SPI_SAM0_SERCOM0_LABEL ATMEL_SAM0_SPI_42000800_LABEL
#define CONFIG_SPI_SAM0_SERCOM0_BASE_ADDRESS ATMEL_SAM0_SPI_42000800_BASE_ADDRESS

View file

@ -14,36 +14,48 @@
#define CONFIG_UART_SAM0_SERCOM0_IRQ_PRIORITY ATMEL_SAM0_UART_42000800_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM0_LABEL ATMEL_SAM0_UART_42000800_LABEL
#define CONFIG_UART_SAM0_SERCOM0_BASE_ADDRESS ATMEL_SAM0_UART_42000800_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM0_RXPO ATMEL_SAM0_UART_42000800_RXPO
#define CONFIG_UART_SAM0_SERCOM0_TXPO ATMEL_SAM0_UART_42000800_TXPO
#define CONFIG_UART_SAM0_SERCOM1_CURRENT_SPEED ATMEL_SAM0_UART_42000C00_CURRENT_SPEED
#define CONFIG_UART_SAM0_SERCOM1_IRQ ATMEL_SAM0_UART_42000C00_IRQ_0
#define CONFIG_UART_SAM0_SERCOM1_IRQ_PRIORITY ATMEL_SAM0_UART_42000C00_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM1_LABEL ATMEL_SAM0_UART_42000C00_LABEL
#define CONFIG_UART_SAM0_SERCOM1_BASE_ADDRESS ATMEL_SAM0_UART_42000C00_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM1_RXPO ATMEL_SAM0_UART_42000C00_RXPO
#define CONFIG_UART_SAM0_SERCOM1_TXPO ATMEL_SAM0_UART_42000C00_TXPO
#define CONFIG_UART_SAM0_SERCOM2_CURRENT_SPEED ATMEL_SAM0_UART_42001000_CURRENT_SPEED
#define CONFIG_UART_SAM0_SERCOM2_IRQ ATMEL_SAM0_UART_42001000_IRQ_0
#define CONFIG_UART_SAM0_SERCOM2_IRQ_PRIORITY ATMEL_SAM0_UART_42001000_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM2_LABEL ATMEL_SAM0_UART_42001000_LABEL
#define CONFIG_UART_SAM0_SERCOM2_BASE_ADDRESS ATMEL_SAM0_UART_42001000_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM2_RXPO ATMEL_SAM0_UART_42001000_RXPO
#define CONFIG_UART_SAM0_SERCOM2_TXPO ATMEL_SAM0_UART_42001000_TXPO
#define CONFIG_UART_SAM0_SERCOM3_CURRENT_SPEED ATMEL_SAM0_UART_42001400_CURRENT_SPEED
#define CONFIG_UART_SAM0_SERCOM3_IRQ ATMEL_SAM0_UART_42001400_IRQ_0
#define CONFIG_UART_SAM0_SERCOM3_IRQ_PRIORITY ATMEL_SAM0_UART_42001400_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM3_LABEL ATMEL_SAM0_UART_42001400_LABEL
#define CONFIG_UART_SAM0_SERCOM3_BASE_ADDRESS ATMEL_SAM0_UART_42001400_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM3_RXPO ATMEL_SAM0_UART_42001400_RXPO
#define CONFIG_UART_SAM0_SERCOM3_TXPO ATMEL_SAM0_UART_42001400_TXPO
#define CONFIG_UART_SAM0_SERCOM4_CURRENT_SPEED ATMEL_SAM0_UART_42001800_CURRENT_SPEED
#define CONFIG_UART_SAM0_SERCOM4_IRQ ATMEL_SAM0_UART_42001800_IRQ_0
#define CONFIG_UART_SAM0_SERCOM4_IRQ_PRIORITY ATMEL_SAM0_UART_42001800_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM4_LABEL ATMEL_SAM0_UART_42001800_LABEL
#define CONFIG_UART_SAM0_SERCOM4_BASE_ADDRESS ATMEL_SAM0_UART_42001800_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM4_RXPO ATMEL_SAM0_UART_42001800_RXPO
#define CONFIG_UART_SAM0_SERCOM4_TXPO ATMEL_SAM0_UART_42001800_TXPO
#define CONFIG_UART_SAM0_SERCOM5_CURRENT_SPEED ATMEL_SAM0_UART_42001C00_CURRENT_SPEED
#define CONFIG_UART_SAM0_SERCOM5_IRQ ATMEL_SAM0_UART_42001C00_IRQ_0
#define CONFIG_UART_SAM0_SERCOM5_IRQ_PRIORITY ATMEL_SAM0_UART_42001C00_IRQ_0_PRIORITY
#define CONFIG_UART_SAM0_SERCOM5_LABEL ATMEL_SAM0_UART_42001C00_LABEL
#define CONFIG_UART_SAM0_SERCOM5_BASE_ADDRESS ATMEL_SAM0_UART_42001C00_BASE_ADDRESS
#define CONFIG_UART_SAM0_SERCOM5_RXPO ATMEL_SAM0_UART_42001C00_RXPO
#define CONFIG_UART_SAM0_SERCOM5_TXPO ATMEL_SAM0_UART_42001C00_TXPO
#define CONFIG_SPI_SAM0_SERCOM0_LABEL ATMEL_SAM0_SPI_42000800_LABEL
#define CONFIG_SPI_SAM0_SERCOM0_BASE_ADDRESS ATMEL_SAM0_SPI_42000800_BASE_ADDRESS