| 
					
				 | 
			
			
				@@ -71,3 +71,85 @@ static struct resource net2big_nor_flash_resource = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static struct platform_device net2big_nor_flash = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name			= "physmap-flash", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.id			= 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dev		= { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.platform_data	= &net2big_nor_flash_data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.num_resources		= 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.resource		= &net2big_nor_flash_resource, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/***************************************************************************** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Ethernet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ ****************************************************************************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct mv643xx_eth_platform_data net2big_eth_data = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.phy_addr	= MV643XX_ETH_PHY_ADDR(8), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/***************************************************************************** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * I2C devices 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ ****************************************************************************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * i2c addr | chip         | description 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 0x32     | Ricoh 5C372b | RTC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 0x50     | HT24LC08     | eeprom (1kB) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct i2c_board_info __initdata net2big_i2c_devices[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		I2C_BOARD_INFO("rs5c372b", 0x32), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		I2C_BOARD_INFO("24c08", 0x50), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/***************************************************************************** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * SATA 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ ****************************************************************************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct mv_sata_platform_data net2big_sata_data = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.n_ports	= 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define NET2BIG_GPIO_SATA_POWER_REQ	19 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define NET2BIG_GPIO_SATA0_POWER	23 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define NET2BIG_GPIO_SATA1_POWER	25 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void __init net2big_sata_power_init(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	int err; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/* Configure GPIOs over MPP max number. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	orion_gpio_set_valid(NET2BIG_GPIO_SATA0_POWER, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	orion_gpio_set_valid(NET2BIG_GPIO_SATA1_POWER, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = gpio_request(NET2BIG_GPIO_SATA0_POWER, "SATA0 power status"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (err == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		err = gpio_direction_input(NET2BIG_GPIO_SATA0_POWER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			gpio_free(NET2BIG_GPIO_SATA0_POWER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		pr_err("net2big: failed to setup SATA0 power GPIO\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = gpio_request(NET2BIG_GPIO_SATA1_POWER, "SATA1 power status"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (err == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		err = gpio_direction_input(NET2BIG_GPIO_SATA1_POWER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			gpio_free(NET2BIG_GPIO_SATA1_POWER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		pr_err("net2big: failed to setup SATA1 power GPIO\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		goto err_free_1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = gpio_request(NET2BIG_GPIO_SATA_POWER_REQ, "SATA power request"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if (err == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		err = gpio_direction_output(NET2BIG_GPIO_SATA_POWER_REQ, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			gpio_free(NET2BIG_GPIO_SATA_POWER_REQ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 |