summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch
blob: a4eaf506a391c81a58e3a3fc1f34b685b5d2464c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
From f9b6989bb732e354c174da80052abbba49f238dd Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Fri, 4 May 2012 13:19:45 +0200
Subject: [PATCH 33/79] beaglebone: add support for CAN and RS232 cape

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
 arch/arm/mach-omap2/board-am335xevm.c |   36 +++++++++++++++++++++++++++------
 1 file changed, 30 insertions(+), 6 deletions(-)

diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
index 717bb8c..6e7b203 100644
--- a/arch/arm/mach-omap2/board-am335xevm.c
+++ b/arch/arm/mach-omap2/board-am335xevm.c
@@ -953,6 +953,18 @@ static struct pinmux_config tt3201_pin_mux[] = {
 	{NULL, 0},
 };
 
+static struct pinmux_config uart1dcan1_pin_mux[] = {
+	{"uart1_rxd.d_can1_tx", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT },
+	{"uart1_txd.d_can1_rx", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP },
+	{NULL, 0},
+};
+
+static struct pinmux_config uart1_pin_mux[] = {
+	{"uart1_txd.uart1_txd", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL},
+	{"uart1_rxd.uart1_rxd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
+	{NULL, 0},
+};
+
 /* Module pin mux for uart2 */
 static struct pinmux_config uart2_pin_mux[] = {
 	{"spi0_sclk.uart2_rxd", OMAP_MUX_MODE1 | AM33XX_SLEWCTRL_SLOW |
@@ -2250,12 +2262,24 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
 		#endif
 	}
 	
-	if (!strncmp("BB-BONE-SERL", cape_config.partnumber, 12)) {
-		pr_info("BeagleBone cape: initializing serial cape\n");
-		// 01 -> CAN
-		// 02 -> Profibus
-		// 03 -> RS232
-		// 04 -> RS485
+	if (!strncmp("BB-BONE-SERL-01", cape_config.partnumber, 15)) {
+		pr_info("BeagleBone cape: initializing CAN cape\n");
+		setup_pin_mux(uart1dcan1_pin_mux);
+		am33xx_d_can_init(1);
+	}
+		if (!strncmp("BB-BONE-SERL-02", cape_config.partnumber, 15)) {
+		pr_info("BeagleBone cape: not initializing Profibus cape\n");
+		// gpio1_0
+		// gpio1_4
+		//foo_init(0,0);
+	}
+		if (!strncmp("BB-BONE-SERL-03", cape_config.partnumber, 15)) {
+		pr_info("BeagleBone cape: initializing RS232 cape\n");
+		pr_info("BeagleBone cape: only uart1 is supported!\n");
+		setup_pin_mux(uart1_pin_mux);
+	}
+		if (!strncmp("BB-BONE-SERL-04", cape_config.partnumber, 15)) {
+		pr_info("BeagleBone cape: not initializing RS485 cape\n");
 		//foo_init(0,0);
 	}
 	
-- 
1.7.10