POWERPC: Bring the fs_no calculation to the relevant SoC enumeration

The fs_no mean used to be fs_enet driver driven, hence it was an
enumeration across all the possible fs_enet "users" in the SoC. Now, with
QE on the pipeline, and to make DTS descriptions more clear, fs_no features
relevant SoC part number, with additional field to describe the SoC type.

Another reason for that is now not only fs_enet is going to utilize those
stuff. There might be UART, HLDC, and even USB, so to prevent confusion and
be ready for upcoming OF_device transfer, fs_enet and cpm_uart drivers were
updated in that concern, as well as the relevant DTS.

Signed-off-by: Vitaly Bordug <vbordug@ru.mvista.com>
diff --git a/arch/powerpc/boot/dts/mpc8560ads.dts b/arch/powerpc/boot/dts/mpc8560ads.dts
index ba5c943..2b16848 100644
--- a/arch/powerpc/boot/dts/mpc8560ads.dts
+++ b/arch/powerpc/boot/dts/mpc8560ads.dts
@@ -244,7 +244,7 @@
 				device_type = "serial";
 				compatible = "cpm_uart";
 				model = "SCC";
-				device-id = <2>;
+				device-id = <1>;
 				reg = <91a00 20 88000 100>;
 				clock-setup = <00ffffff 0>;
 				rx-clock = <1>;
@@ -258,7 +258,7 @@
 				device_type = "serial";
 				compatible = "cpm_uart";
 				model = "SCC";
-				device-id = <3>;
+				device-id = <2>;
 				reg = <91a20 20 88100 100>;
 				clock-setup = <ff00ffff 90000>;
 				rx-clock = <2>;
@@ -272,7 +272,7 @@
 				device_type = "network";
 				compatible = "fs_enet";
 				model = "FCC";
-				device-id = <3>;
+				device-id = <2>;
 				reg = <91320 20 88500 100 913a0 30>;
 				mac-address = [ 00 00 0C 00 02 FD ];
 				clock-setup = <ff00ffff 250000>;
@@ -287,7 +287,7 @@
 				device_type = "network";
 				compatible = "fs_enet";
 				model = "FCC";
-				device-id = <4>;
+				device-id = <3>;
 				reg = <91340 20 88600 100 913d0 30>;
 				mac-address = [ 00 00 0C 00 03 FD ];
 				clock-setup = <ffff00ff 3700>;
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index 4e72bb9..022ed27 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -622,6 +622,7 @@
 
 		id = get_property(np, "device-id", NULL);
 		fs_enet_data.fs_no = *id;
+		strcpy(fs_enet_data.fs_type, model);
 
 		mdio = of_get_parent(phy);
                 ret = of_address_to_resource(mdio, 0, &res);
@@ -635,7 +636,7 @@
 		fs_enet_data.clk_tx = *((u32 *) get_property(np, "tx-clock", NULL));
 
 		if (strstr(model, "FCC")) {
-			int fcc_index = fs_get_fcc_index(*id);
+			int fcc_index = *id - 1;
 
 			fs_enet_data.dpram_offset = (u32)cpm_dpram_addr(0);
 			fs_enet_data.rx_ring = 32;
@@ -688,6 +689,7 @@
 		struct resource r[3];
 		struct fs_uart_platform_info cpm_uart_data;
 		const int *id;
+		const char *model;
 
 		memset(r, 0, sizeof(r));
 		memset(&cpm_uart_data, 0, sizeof(cpm_uart_data));
@@ -716,6 +718,10 @@
 
 		id = get_property(np, "device-id", NULL);
 		cpm_uart_data.fs_no = *id;
+
+		model = (char*)get_property(np, "model", NULL);
+		strcpy(cpm_uart_data.fs_type, model);
+
 		cpm_uart_data.uart_clk = ppc_proc_freq;
 
 		cpm_uart_data.tx_num_fifo = 4;