/*
 * at91sam9g20ek_2mmc.dts - Device Tree file for Atmel at91sam9g20ek 2 MMC board
 *
 * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 *
 * Licensed under GPLv2.
 */
/dts-v1/;
#include "at91sam9g20ek_common.dtsi"

/ {
	model = "Atmel at91sam9g20ek 2 mmc";
	compatible = "atmel,at91sam9g20ek_2mmc", "atmel,at91sam9g20", "atmel,at91sam9";

	ahb {
		apb{
			mmc0: mmc@fffa8000 {
				/* clk already mux wuth slot0 */
				pinctrl-0 = <
					&pinctrl_board_mmc0_slot0
					&pinctrl_mmc0_slot0_cmd_dat0
					&pinctrl_mmc0_slot0_dat1_3>;
				slot@0 {
					reg = <0>;
					bus-width = <4>;
					cd-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;
				};
			};

			pinctrl@fffff400 {
				mmc0_slot0 {
					pinctrl_board_mmc0_slot0: mmc0_slot0-board {
						atmel,pins =
							<AT91_PIOC 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PC2 gpio CD pin pull up and deglitch */
					};
				};
			};
		};
	};

	leds {
		compatible = "gpio-leds";

		ds1 {
			label = "ds1";
			gpios = <&pioB 9 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};

		ds5 {
			label = "ds5";
			gpios = <&pioB 8 GPIO_ACTIVE_LOW>;
		};
	};
};
