/*
 * at91sam9x25.dtsi - Device Tree Include file for AT91SAM9X25 SoC
 *
 * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 *
 * Licensed under GPLv2.
 */

/include/ "at91sam9x5.dtsi"

/ {
	model = "Atmel AT91SAM9X25 SoC";
	compatible = "atmel,at91sam9x25", "atmel,at91sam9x5";

	ahb {
		apb {
			pinctrl@fffff400 {
				atmel,mux-mask = <
				      /*    A         B          C     */
				       0xffffffff 0xffe03fff 0xc000001c  /* pioA */
				       0x0007ffff 0x00047e3f 0x00000000  /* pioB */
				       0x80000000 0xfffd0000 0xb83fffff  /* pioC */
				       0x003fffff 0x003f8000 0x00000000  /* pioD */
				      >;

				macb1 {
					pinctrl_macb1_rmii: macb1_rmii-0 {
						atmel,pins =
							<2 16 0x2 0x0	/* PC16 periph B */
							 2 18 0x2 0x0	/* PC18 periph B */
							 2 19 0x2 0x0	/* PC19 periph B */
							 2 20 0x2 0x0	/* PC20 periph B */
							 2 21 0x2 0x0	/* PC21 periph B */
							 2 27 0x2 0x0	/* PC27 periph B */
							 2 28 0x2 0x0	/* PC28 periph B */
							 2 29 0x2 0x0	/* PC29 periph B */
							 2 30 0x2 0x0	/* PC30 periph B */
							 2 31 0x2 0x0>;	/* PC31 periph B */
					};
				};
			};

			macb1: ethernet@f8030000 {
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_macb1_rmii>;
			};
		};
	};
};
