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

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

&pinctrl {
	gmac_mii: gmac_mii {
		group1 {
			pinmux = <PD0A_GMAC_GTXCK>,
				 <PD1A_GMAC_GTXEN>,
				 <PD2A_GMAC_GTX0>,
				 <PD3A_GMAC_GTX1>,
				 <PD15A_GMAC_GTX2>,
				 <PD16A_GMAC_GTX3>,
				 <PD4A_GMAC_GRXDV>,
				 <PD5A_GMAC_GRX0>,
				 <PD6A_GMAC_GRX1>,
				 <PD11A_GMAC_GRX2>,
				 <PD12A_GMAC_GRX3>,
				 <PD7A_GMAC_GRXER>,
				 <PD14A_GMAC_GRXCK>,
				 <PD13A_GMAC_GCOL>,
				 <PD10A_GMAC_GCRS>;
		};
	};

	mdio_default: mdio_default {
		group1 {
			pinmux = <PD8A_GMAC_GMDC>,
				 <PD9A_GMAC_GMDIO>;
		};
	};

	spi0_default: spi0_default {
		group1 {
			pinmux = <PA12A_SPI_MISO>,
				 <PA13A_SPI_MOSI>,
				 <PA14A_SPI_SPCK>,
				 <PB14A_SPI_NPCS1>,
				 <PD23_GPIO>,
				 <PD30_GPIO>;
		};
	};

	twi0_default: twi0_default {
		group1 {
			pinmux = <PA4A_TWI0_TWCK>,
				 <PA3A_TWI0_TWD>;
		};
	};

	uart0_default: uart0_default {
		group1 {
			pinmux = <PA9A_UART0_RXD>,
				 <PA10A_UART0_TXD>;
		};
	};
	uart1_default: uart1_default {
		group1 {
			pinmux = <PA5C_UART1_RXD>,
				 <PA6C_UART1_TXD>;
		};
	};
	usart1_default: usart1_default {
		group1 {
			pinmux = <PA21A_USART1_RXD>,
				 <PA24A_USART1_RTS>;
			bias-pull-up;
		};
		group2 {
			pinmux = <PA22A_USART1_TXD>,
				 <PA25A_USART1_CTS>;
		};
	};
};
