All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ulf Samuelsson <ulf@atmel.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] "7.at91rm9200dk":(1 of 1) [PATCH][ARM] Add PIO control for at91rm9200dk LEDs and Mux.
Date: Tue, 27 Mar 2007 18:17:15 +0200	[thread overview]
Message-ID: <4609438B.3060804@atmel.com> (raw)

Author: Ulf Samuelsson <ulf@atmel.com>
Date:     2007-03-27

Subject:	"7.at91rm9200dk":(1 of  1)     [PATCH][ARM] 	Add PIO control for at91rm9200dk LEDs and Mux.

CHANGELOG:
    [PATCH][ARM] 	Add PIO control for at91rm9200dk LEDs and Mux.
    Introduce a new command CFG_CMD_MUX 0x8000000000000000ULL

    Patch generated from files:
          board_at91rm9200dk_led.c.patch
          board_at91rm9200dk_Makefile.patch
          board_at91rm9200dk_mux.c.patch
          common_soft_i2c.c.patch
          include_cmd_confdefs.h.patch
          include_configs_at91rm9200dk.h.patch
          include_led.h.patch

    Signed-off-by:	Ulf Samuelsson
---------------------------------------------------------------------------------------------------------------------------------
diff -urN u-boot-1.2.0/board/at91rm9200dk/led.c u-boot-1.2.0-atmel/board/at91rm9200dk/led.c
--- u-boot-1.2.0/board/at91rm9200dk/led.c	1970-01-01 01:00:00.000000000 +0100
+++ u-boot-1.2.0-atmel/board/at91rm9200dk/led.c	2007-03-27 10:40:35.000000000 +0200
@@ -0,0 +1,81 @@
+/*
+ * (C) Copyright 2006
+ * Atmel Nordic AB <www.atmel.com>
+ * Ulf Samuelsson <ulf@atmel.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/arch/AT91RM9200.h>
+
+#define	GREEN_LED	AT91C_PIO_PB0
+#define	YELLOW_LED	AT91C_PIO_PB1
+#define	RED_LED	AT91C_PIO_PB2
+
+void	green_LED_on(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+	PIOB->PIO_CODR		= GREEN_LED;
+}
+
+void	 yellow_LED_on(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+	PIOB->PIO_CODR		= YELLOW_LED;
+}
+
+void	 red_LED_on(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+	PIOB->PIO_CODR		= RED_LED;
+}
+
+void	green_LED_off(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+	PIOB->PIO_SODR		= GREEN_LED;
+}
+
+void	yellow_LED_off(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+	PIOB->PIO_SODR		= YELLOW_LED;
+}
+
+void	red_LED_off(void)
+{
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+	PIOB->PIO_SODR		= RED_LED;
+}
+
+
+void LED_init (void)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
+	AT91PS_PMC	PMC	= AT91C_BASE_PMC;
+	PMC->PMC_PCER		= (1 << AT91C_ID_PIOB);	/* Enable PIOB clock */
+	/* Disable peripherals on LEDs */
+	PIOB->PIO_PER		= AT91C_PIO_PB2 | AT91C_PIO_PB1 | AT91C_PIO_PB0;
+	/* Enable pins as outputs */
+	PIOB->PIO_OER		= AT91C_PIO_PB2 | AT91C_PIO_PB1 | AT91C_PIO_PB0;
+	/* Turn all LEDs OFF */
+	PIOB->PIO_SODR		= AT91C_PIO_PB2 | AT91C_PIO_PB1 | AT91C_PIO_PB0;
+}
diff -urN u-boot-1.2.0/board/at91rm9200dk/Makefile u-boot-1.2.0-atmel/board/at91rm9200dk/Makefile
--- u-boot-1.2.0/board/at91rm9200dk/Makefile	2007-03-27 09:30:38.000000000 +0200
+++ u-boot-1.2.0-atmel/board/at91rm9200dk/Makefile	2007-03-24 20:07:33.000000000 +0100
@@ -25,7 +25,7 @@

 LIB	= $(obj)lib$(BOARD).a

-COBJS	:= at91rm9200dk.o flash.o
+COBJS	:= at91rm9200dk.o flash.o led.o mux.o

 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(COBJS))
diff -urN u-boot-1.2.0/board/at91rm9200dk/mux.c u-boot-1.2.0-atmel/board/at91rm9200dk/mux.c
--- u-boot-1.2.0/board/at91rm9200dk/mux.c	1970-01-01 01:00:00.000000000 +0100
+++ u-boot-1.2.0-atmel/board/at91rm9200dk/mux.c	2007-03-24 20:07:33.000000000 +0100
@@ -0,0 +1,36 @@
+#include <config.h>
+#include <common.h>
+#include <asm/hardware.h>
+#include <dataflash.h>
+
+int AT91F_GetMuxStatus(void) {
+#ifdef	DATAFLASH_MMC_SELECT
+		AT91C_BASE_PIOB->PIO_PER = DATAFLASH_MMC_SELECT;	/* Set in PIO mode */
+		AT91C_BASE_PIOB->PIO_OER = DATAFLASH_MMC_SELECT;	/* Configure in output */
+
+
+		if(AT91C_BASE_PIOB->PIO_ODSR & DATAFLASH_MMC_SELECT) {
+			return 1;
+		} else {
+			return 0;
+		}
+#endif
+}
+
+void AT91F_SelectMMC(void) {
+#ifdef	DATAFLASH_MMC_SELECT
+		AT91C_BASE_PIOB->PIO_PER = DATAFLASH_MMC_SELECT;	/* Set in PIO mode */
+		AT91C_BASE_PIOB->PIO_OER = DATAFLASH_MMC_SELECT;	/* Configure in output */
+		/* Set Output */
+		AT91C_BASE_PIOB->PIO_SODR = DATAFLASH_MMC_SELECT;
+#endif
+}
+
+void AT91F_SelectSPI(void) {
+#ifdef	DATAFLASH_MMC_SELECT
+		AT91C_BASE_PIOB->PIO_PER = DATAFLASH_MMC_SELECT;	/* Set in PIO mode */
+		AT91C_BASE_PIOB->PIO_OER = DATAFLASH_MMC_SELECT;	/* Configure in output */
+		/* Clear Output */
+		AT91C_BASE_PIOB->PIO_CODR = DATAFLASH_MMC_SELECT;
+#endif
+}
diff -urN u-boot-1.2.0/common/soft_i2c.c u-boot-1.2.0-atmel/common/soft_i2c.c
--- u-boot-1.2.0/common/soft_i2c.c	2007-01-07 00:13:11.000000000 +0100
+++ u-boot-1.2.0-atmel/common/soft_i2c.c	2007-03-24 20:07:33.000000000 +0100
@@ -29,7 +29,7 @@
 #ifdef	CONFIG_MPC8260			/* only valid for MPC8260 */
 #include <ioports.h>
 #endif
-#ifdef CONFIG_AT91RM9200DK		/* need this for the at91rm9200dk */
+#ifdef	CONFIG_AT91RM9200		/* need this for the at91rm9200 */
 #include <asm/io.h>
 #include <asm/arch/hardware.h>
 #endif
diff -urN u-boot-1.2.0/include/cmd_confdefs.h u-boot-1.2.0-atmel/include/cmd_confdefs.h
--- u-boot-1.2.0/include/cmd_confdefs.h	2007-01-07 00:13:11.000000000 +0100
+++ u-boot-1.2.0-atmel/include/cmd_confdefs.h	2007-03-24 20:07:33.000000000 +0100
@@ -94,6 +94,7 @@
 #define CFG_CMD_EXT2	0x1000000000000000ULL	/* EXT2 Support			*/
 #define CFG_CMD_SNTP	0x2000000000000000ULL	/* SNTP support			*/
 #define CFG_CMD_DISPLAY	0x4000000000000000ULL	/* Display support		*/
+#define CFG_CMD_MUX     0x8000000000000000ULL	/* AT91 MMC/SPI Mux Support     */

 #define CFG_CMD_ALL	0xFFFFFFFFFFFFFFFFULL	/* ALL commands			*/

@@ -141,7 +142,8 @@
 			CFG_CMD_SPI	| \
 			CFG_CMD_UNIVERSE | \
 			CFG_CMD_USB	| \
-			CFG_CMD_VFD	)
+			CFG_CMD_VFD	| \
+			CFG_CMD_MUX)

 /* Default configuration
  */
diff -urN u-boot-1.2.0/include/configs/at91rm9200dk.h u-boot-1.2.0-atmel/include/configs/at91rm9200dk.h
--- u-boot-1.2.0/include/configs/at91rm9200dk.h	2007-01-07 00:13:11.000000000 +0100
+++ u-boot-1.2.0-atmel/include/configs/at91rm9200dk.h	2007-03-26 22:40:12.000000000 +0200
@@ -150,6 +162,11 @@
 #define CONFIG_NET_RETRY_COUNT		20
 #define CONFIG_AT91C_USE_RMII

+/* AC Characteristics */
+/* DLYBS = tCSS = 250ns min and DLYBCT = tCSH = 250ns */
+#define DATAFLASH_TCSS	(0xC << 16)
+#define DATAFLASH_TCHS	(0x1 << 24)
+
 #define CONFIG_HAS_DATAFLASH		1
 #define CFG_SPI_WRITE_TOUT		(5*CFG_HZ)
 #define CFG_MAX_DATAFLASH_BANKS 	2
diff -urN u-boot-1.2.0/include/led.h u-boot-1.2.0-atmel/include/led.h
--- u-boot-1.2.0/include/led.h	1970-01-01 01:00:00.000000000 +0100
+++ u-boot-1.2.0-atmel/include/led.h	2007-03-24 20:07:32.000000000 +0100
@@ -0,0 +1,45 @@
+/*
+ * (C) Copyright 2006
+ * Atmel Nordic AB <www.atmel.com>
+ * Ulf Samuelsson <ulf@atmel.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+ #ifndef __LED_H
+#define __LED_H
+
+#ifndef	__ASSEMBLY__
+extern void	LED_init (void);
+extern void	red_LED_on(void);
+extern void	red_LED_off(void);
+extern void	green_LED_on(void);
+extern void	green_LED_off(void);
+extern void	yellow_LED_on(void);
+extern void	yellow_LED_off(void);
+#else
+	.extern LED_init
+	.extern red_LED_on
+	.extern red_LED_off
+	.extern yellow_LED_on
+	.extern yellow_LED_off
+	.extern green_LED_on
+	.extern green_LED_off
+#endif
+#endif

-- 
Best Regards,
Ulf Samuelsson
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ulf.vcf
Type: text/x-vcard
Size: 301 bytes
Desc: not available
Url : http://lists.denx.de/pipermail/u-boot/attachments/20070327/bccb2768/attachment.vcf 

             reply	other threads:[~2007-03-27 16:17 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-27 16:17 Ulf Samuelsson [this message]
2007-04-03 14:58 ` [U-Boot-Users] "7.at91rm9200dk":(1 of 1) [PATCH][ARM] Add PIO control for at91rm9200dk LEDs and Mux Peter Pearse
2007-04-11 13:14   ` [U-Boot-Users] "7.at91rm9200dk":(1 of 1) [PATCH][ARM] Add PIOcontrol " Ulf Samuelsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4609438B.3060804@atmel.com \
    --to=ulf@atmel.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.