|
@@ -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);
|
|
|
+ }
|