From 121949f8fc696103181b55c205c19f92b53c4968 Mon Sep 17 00:00:00 2001
From: Artur Artamonov <freeartman@wechall.net>
Date: Fri, 27 Sep 2013 11:20:56 +0300
Subject: USB initialisation in arch/rlx/bsp_XXXX/setup.c files

---
 .../realtek/files/arch/rlx/bsp_rtl8196c/Makefile   | 18 ++----
 .../realtek/files/arch/rlx/bsp_rtl8196c/bspchip.h  | 18 +-----
 .../realtek/files/arch/rlx/bsp_rtl8196c/rlxhack.h  | 70 ++++++++++++++++++++++
 .../realtek/files/arch/rlx/bsp_rtl8196c/setup.c    |  5 +-
 .../realtek/files/arch/rlx/bsp_rtl8196e/Makefile   | 19 ++----
 .../realtek/files/arch/rlx/bsp_rtl8196e/bspchip.h  |  2 +
 .../realtek/files/arch/rlx/bsp_rtl8196e/rlxhack.h  | 70 ++++++++++++++++++++++
 .../realtek/files/arch/rlx/bsp_rtl8196e/setup.c    |  3 +
 .../realtek/files/arch/rlx/bsp_rtl819xD/Makefile   | 18 ++----
 .../realtek/files/arch/rlx/bsp_rtl819xD/setup.c    |  2 +
 10 files changed, 167 insertions(+), 58 deletions(-)
 create mode 100644 target/linux/realtek/files/arch/rlx/bsp_rtl8196c/rlxhack.h
 create mode 100644 target/linux/realtek/files/arch/rlx/bsp_rtl8196e/rlxhack.h

diff --git a/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/Makefile b/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/Makefile
index ca3266bc8..9d8a06afd 100644
--- a/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/Makefile
+++ b/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/Makefile
@@ -1,27 +1,17 @@
-# Realtek Semiconductor Corp.
-#
-# Tony Wu (tonywu@realtek.com)
-# Oct. 18, 2008
-#
+include $(TOPDIR)/.config
 
-#
-# RTL8196C
-#
-include $(DIR_LINUX)/.config
-
-core-y   += arch/rlx/bsp/
 cflags-y += -Iinclude/asm-rlx -Iarch/rlx/bsp/
 #load-y   += 0xffffffff80000000
 load-y   += 0x80000000
 
 extra-y  += vmlinux.lds
 
-obj-y := prom.o setup.o irq.o timer.o serial.o
+obj-y := irq.o prom.o serial.o setup.o timer.o dev_usb.o
 obj-$(CONFIG_PCI) += pci.o
 
 EXTRA_AFLAGS := $(CFLAGS)
-EXTRA_CFLAGS += -I$(DIR_LINUX)/drivers/net/rtl819x/AsicDriver
-EXTRA_CFLAGS += -I$(DIR_LINUX)/drivers/net/rtl819x/common
+EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/rtl819x/AsicDriver
+EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/rtl819x/common
 ifdef CONFIG_RTL_819X_SWCORE
 EXTRA_CFLAGS += -DCONFIG_RTL_819X_SWCORE
 endif
diff --git a/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/bspchip.h b/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/bspchip.h
index 0f65e1945..887d87154 100644
--- a/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/bspchip.h
+++ b/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/bspchip.h
@@ -11,24 +11,10 @@
 #ifndef _BSPCHIP_H_
 #define _BSPCHIP_H_
 
+#include "rlxhack.h"
+
 #include <linux/autoconf.h>
 #define RTL8196C 1
-/*
- * Register access macro
- */
-#define REG32(reg)	(*(volatile unsigned int   *)((unsigned int)reg))
-#define REG16(reg)	(*(volatile unsigned short *)((unsigned int)reg))
-#define REG08(reg)	(*(volatile unsigned char  *)((unsigned int)reg))
-#define REG8(reg)   (*(volatile unsigned char  *)((unsigned int)reg))
-
-#define WRITE_MEM32(addr, val)   (*(volatile unsigned int *)   (addr)) = (val)
-#define READ_MEM32(addr)         (*(volatile unsigned int *)   (addr))
-#define WRITE_MEM16(addr, val)   (*(volatile unsigned short *) (addr)) = (val)
-#define READ_MEM16(addr)         (*(volatile unsigned short *) (addr))
-#define WRITE_MEM8(addr, val)    (*(volatile unsigned char *)  (addr)) = (val)
-#define READ_MEM8(addr)          (*(volatile unsigned char *)  (addr))
-
-#define PADDR(addr)  ((addr) & 0x1FFFFFFF)
 
 /*
  * IRQ Controller
diff --git a/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/rlxhack.h b/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/rlxhack.h
new file mode 100644
index 000000000..450b3bb9c
--- /dev/null
+++ b/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/rlxhack.h
@@ -0,0 +1,70 @@
+#ifndef __RLXHACK_H
+#define __RLXHACK_H
+
+/*
+ * Register access macro
+ */
+#ifndef REG32
+#define REG32(reg)		(*(volatile unsigned int   *)((unsigned int)reg))
+#define REG16(reg)		(*(volatile unsigned short *)((unsigned int)reg))
+#define REG08(reg)		(*(volatile unsigned char  *)((unsigned int)reg))
+#define REG8(reg)		(*(volatile unsigned char  *)((unsigned int)reg))
+
+#define WRITE_MEM32(addr, val)	(*(volatile unsigned int *)   (addr)) = (val)
+#define READ_MEM32(addr)	(*(volatile unsigned int *)   (addr))
+#define WRITE_MEM16(addr, val)	(*(volatile unsigned short *) (addr)) = (val)
+#define READ_MEM16(addr)	(*(volatile unsigned short *) (addr))
+#define WRITE_MEM8(addr, val)	(*(volatile unsigned char *)  (addr)) = (val)
+#define READ_MEM8(addr)		(*(volatile unsigned char *)  (addr))
+
+#endif
+
+//config options
+#define PRINTF printk
+#define COLORIZE
+#define PRINT_LINENUM
+#define PRINT_FILENAME
+#define PRINT_DEBUG
+
+
+//use color
+#ifdef COLORIZE
+	#define COLOR "1;32m"
+	#define COLOR_S "\033[" COLOR
+	#define COLOR_E "\033[0m"
+#else
+	#define COLOR
+	#define COLOR_S
+	#define COLOR_E
+#endif
+
+//print debug line
+#ifdef PRINT_LINENUM
+	#define PRINT_LINE_F "LINE:%d "
+	#define PRINT_LINE_D __LINE__
+#else
+	#define PRINT_LINE_F ""
+	#define PRINT_LINE_D ""
+#endif
+
+//print
+#ifdef PRINT_FILENAME
+	#define PRINT_FILE_F "FILE:%s "
+	#define PRINT_FILE_D __FILE__
+#else
+	#define PRINT_FILE_F ""
+	#define PRINT_FILE_D ""
+#endif
+
+//print debug string
+#ifdef PRINT_DEBUG
+	#define PRINT_DEBUG_F "Debug: "
+#else
+	#define PRINT_DEBUG_F ""
+#endif
+
+#define PRINT( format, args ... ) PRINTF( COLOR_S PRINT_DEBUG_F \
+	PRINT_FILE_F PRINT_LINE_F format COLOR_E, PRINT_FILE_D, \
+	PRINT_LINE_D, ##args);
+
+#endif
diff --git a/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/setup.c b/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/setup.c
index edb6d830b..dddde7756 100644
--- a/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/setup.c
+++ b/target/linux/realtek/files/arch/rlx/bsp_rtl8196c/setup.c
@@ -28,10 +28,11 @@
 #include "bspchip.h"
 
 extern int bsp_swcore_init(unsigned int version);
+extern void __init rtl819x_add_device_usb(void);
 
 static void prom_putchar(char c)
 {
-#define UART0_BASE		0xB8002000
+
 #define UART0_THR		(UART0_BASE + 0x000)
 #define UART0_FCR		(UART0_BASE + 0x008)
 #define UART0_LSR       (UART0_BASE + 0x014)
@@ -161,3 +162,5 @@ void __init bsp_setup(void)
 	}
 #endif
 }
+
+pure_initcall(rtl819x_add_device_usb);
diff --git a/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/Makefile b/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/Makefile
index d32d4c5d5..9d8a06afd 100644
--- a/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/Makefile
+++ b/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/Makefile
@@ -1,26 +1,17 @@
-# Realtek Semiconductor Corp.
-#
-# Tony Wu (tonywu@realtek.com)
-# Oct. 18, 2008
-#
+include $(TOPDIR)/.config
 
-#
-# RTL8198
-#
-include $(DIR_LINUX)/.config
-
-core-y   += arch/rlx/bsp/
 cflags-y += -Iinclude/asm-rlx -Iarch/rlx/bsp/
+#load-y   += 0xffffffff80000000
 load-y   += 0x80000000
 
 extra-y  += vmlinux.lds
 
-obj-y := prom.o setup.o irq.o timer.o serial.o
+obj-y := irq.o prom.o serial.o setup.o timer.o dev_usb.o
 obj-$(CONFIG_PCI) += pci.o
 
 EXTRA_AFLAGS := $(CFLAGS)
-EXTRA_CFLAGS += -I$(DIR_LINUX)/drivers/net/rtl819x/AsicDriver
-EXTRA_CFLAGS += -I$(DIR_LINUX)/drivers/net/rtl819x/common
+EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/rtl819x/AsicDriver
+EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/rtl819x/common
 ifdef CONFIG_RTL_819X_SWCORE
 EXTRA_CFLAGS += -DCONFIG_RTL_819X_SWCORE
 endif
diff --git a/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/bspchip.h b/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/bspchip.h
index 1bddb2a7d..5651dcbc9 100644
--- a/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/bspchip.h
+++ b/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/bspchip.h
@@ -13,6 +13,8 @@
 #ifndef _BSPCHIP_H_
 #define _BSPCHIP_H_
 
+#include "rlxhack.h"
+
 #include <linux/autoconf.h>
 
 /*
diff --git a/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/rlxhack.h b/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/rlxhack.h
new file mode 100644
index 000000000..450b3bb9c
--- /dev/null
+++ b/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/rlxhack.h
@@ -0,0 +1,70 @@
+#ifndef __RLXHACK_H
+#define __RLXHACK_H
+
+/*
+ * Register access macro
+ */
+#ifndef REG32
+#define REG32(reg)		(*(volatile unsigned int   *)((unsigned int)reg))
+#define REG16(reg)		(*(volatile unsigned short *)((unsigned int)reg))
+#define REG08(reg)		(*(volatile unsigned char  *)((unsigned int)reg))
+#define REG8(reg)		(*(volatile unsigned char  *)((unsigned int)reg))
+
+#define WRITE_MEM32(addr, val)	(*(volatile unsigned int *)   (addr)) = (val)
+#define READ_MEM32(addr)	(*(volatile unsigned int *)   (addr))
+#define WRITE_MEM16(addr, val)	(*(volatile unsigned short *) (addr)) = (val)
+#define READ_MEM16(addr)	(*(volatile unsigned short *) (addr))
+#define WRITE_MEM8(addr, val)	(*(volatile unsigned char *)  (addr)) = (val)
+#define READ_MEM8(addr)		(*(volatile unsigned char *)  (addr))
+
+#endif
+
+//config options
+#define PRINTF printk
+#define COLORIZE
+#define PRINT_LINENUM
+#define PRINT_FILENAME
+#define PRINT_DEBUG
+
+
+//use color
+#ifdef COLORIZE
+	#define COLOR "1;32m"
+	#define COLOR_S "\033[" COLOR
+	#define COLOR_E "\033[0m"
+#else
+	#define COLOR
+	#define COLOR_S
+	#define COLOR_E
+#endif
+
+//print debug line
+#ifdef PRINT_LINENUM
+	#define PRINT_LINE_F "LINE:%d "
+	#define PRINT_LINE_D __LINE__
+#else
+	#define PRINT_LINE_F ""
+	#define PRINT_LINE_D ""
+#endif
+
+//print
+#ifdef PRINT_FILENAME
+	#define PRINT_FILE_F "FILE:%s "
+	#define PRINT_FILE_D __FILE__
+#else
+	#define PRINT_FILE_F ""
+	#define PRINT_FILE_D ""
+#endif
+
+//print debug string
+#ifdef PRINT_DEBUG
+	#define PRINT_DEBUG_F "Debug: "
+#else
+	#define PRINT_DEBUG_F ""
+#endif
+
+#define PRINT( format, args ... ) PRINTF( COLOR_S PRINT_DEBUG_F \
+	PRINT_FILE_F PRINT_LINE_F format COLOR_E, PRINT_FILE_D, \
+	PRINT_LINE_D, ##args);
+
+#endif
diff --git a/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/setup.c b/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/setup.c
index 3544144a0..ec52ae2ad 100644
--- a/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/setup.c
+++ b/target/linux/realtek/files/arch/rlx/bsp_rtl8196e/setup.c
@@ -28,6 +28,7 @@
 #include "bspchip.h"
 
 extern int bsp_swcore_init(unsigned int version);
+extern void __init rtl819x_add_device_usb(void);
 
 static void prom_putchar(char c)
 {
@@ -173,3 +174,5 @@ void __init bsp_setup(void)
 	}
 #endif
 }
+
+pure_initcall(rtl819x_add_device_usb);
diff --git a/target/linux/realtek/files/arch/rlx/bsp_rtl819xD/Makefile b/target/linux/realtek/files/arch/rlx/bsp_rtl819xD/Makefile
index d32d4c5d5..04c487630 100644
--- a/target/linux/realtek/files/arch/rlx/bsp_rtl819xD/Makefile
+++ b/target/linux/realtek/files/arch/rlx/bsp_rtl819xD/Makefile
@@ -1,26 +1,18 @@
-# Realtek Semiconductor Corp.
-#
-# Tony Wu (tonywu@realtek.com)
-# Oct. 18, 2008
-#
+include $(TOPDIR)/.config
 
-#
-# RTL8198
-#
-include $(DIR_LINUX)/.config
 
-core-y   += arch/rlx/bsp/
 cflags-y += -Iinclude/asm-rlx -Iarch/rlx/bsp/
+#load-y   += 0xffffffff80000000
 load-y   += 0x80000000
 
 extra-y  += vmlinux.lds
 
-obj-y := prom.o setup.o irq.o timer.o serial.o
+obj-y := irq.o prom.o serial.o setup.o timer.o dev_usb.o
 obj-$(CONFIG_PCI) += pci.o
 
 EXTRA_AFLAGS := $(CFLAGS)
-EXTRA_CFLAGS += -I$(DIR_LINUX)/drivers/net/rtl819x/AsicDriver
-EXTRA_CFLAGS += -I$(DIR_LINUX)/drivers/net/rtl819x/common
+EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/rtl819x/AsicDriver
+EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/rtl819x/common
 ifdef CONFIG_RTL_819X_SWCORE
 EXTRA_CFLAGS += -DCONFIG_RTL_819X_SWCORE
 endif
diff --git a/target/linux/realtek/files/arch/rlx/bsp_rtl819xD/setup.c b/target/linux/realtek/files/arch/rlx/bsp_rtl819xD/setup.c
index c6f147ad5..932e9aa2b 100644
--- a/target/linux/realtek/files/arch/rlx/bsp_rtl819xD/setup.c
+++ b/target/linux/realtek/files/arch/rlx/bsp_rtl819xD/setup.c
@@ -185,3 +185,5 @@ void __init bsp_setup(void)
 	}
 #endif
 }
+
+pure_initcall(rtl819x_add_device_usb);
-- 
cgit v1.2.3