/*
 * Copyright (c) 2022, Gerson Fernando Budke <nandojve@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */

#include <dt-bindings/pinctrl/sam3XXh-pinctrl.h>

&pinctrl {
	twi0_default: twi0_default {
		group1 {
			pinmux = <PA18A_TWI0_TWCK>,
				 <PA17A_TWI0_TWD>;
		};
	};
	twi1_default: twi1_default {
		group1 {
			pinmux = <PB13A_TWI1_TWCK>,
				 <PB12A_TWI1_TWD>;
		};
	};

	uart_default: uart_default {
		group1 {
			pinmux = <PA8A_UART_RXD>;
			bias-pull-up;
		};
		group2 {
			pinmux = <PA9A_UART_TXD>;
		};
	};
	usart0_default: usart0_default {
		group1 {
			pinmux = <PA10A_USART0_RXD>,
				 <PA11A_USART0_TXD>;
		};
	};
	usart1_default: usart1_default {
		group1 {
			pinmux = <PA12A_USART1_RXD>,
				 <PA13A_USART1_TXD>;
		};
	};
	usart2_default: usart2_default {
		group1 {
			pinmux = <PB21A_USART2_RXD>,
				 <PB20A_USART2_TXD>;
		};
	};
	usart3_default: usart3_default {
		group1 {
			pinmux = <PD5B_USART3_RXD>,
				 <PD4B_USART3_TXD>;
		};
	};
};
