ethernet cleanup and sata fix - thanks, Chris
[librecmc/librecmc.git] / target / linux / cns3xxx / patches / 100-laguna_support.patch
index 574b8b3918beee5295dbfda94dca9b6d1f7b0878..416b9394572c9e1189c012afbd0c2ef70d5ee6a8 100644 (file)
@@ -1,6 +1,6 @@
 --- /dev/null
 +++ b/arch/arm/mach-cns3xxx/laguna.c
-@@ -0,0 +1,671 @@
+@@ -0,0 +1,761 @@
 +/*
 + * Gateworks Corporation Laguna Platform
 + *
 +              .name = "user2", /* Red Led */
 +              .gpio = 114,
 +              .active_low = 1,
++      },{
++              .name = "pwr1", /* Green Led */
++              .gpio = 116,
++              .active_low = 1,
++      },{
++              .name = "pwr2", /* Yellow Led */
++              .gpio = 117,
++              .active_low = 1,
++      },{
++              .name = "txd1", /* Green Led */
++              .gpio = 118,
++              .active_low = 1,
++      },{
++              .name = "txd2", /* Yellow Led */
++              .gpio = 119,
++              .active_low = 1,
++      },{
++              .name = "rxd1", /* Green Led */
++              .gpio = 120,
++              .active_low = 1,
++      },{
++              .name = "rxd2", /* Yellow Led */
++              .gpio = 121,
++              .active_low = 1,
++      },{
++              .name = "ser1", /* Green Led */
++              .gpio = 122,
++              .active_low = 1,
++      },{
++              .name = "ser2", /* Yellow Led */
++              .gpio = 123,
++              .active_low = 1,
++      },{
++              .name = "enet1", /* Green Led */
++              .gpio = 124,
++              .active_low = 1,
++      },{
++              .name = "enet2", /* Yellow Led */
++              .gpio = 125,
++              .active_low = 1,
++      },{
++              .name = "sig1_1", /* Green Led */
++              .gpio = 126,
++              .active_low = 1,
++      },{
++              .name = "sig1_2", /* Yellow Led */
++              .gpio = 127,
++              .active_low = 1,
++      },{
++              .name = "sig2_1", /* Green Led */
++              .gpio = 128,
++              .active_low = 1,
++      },{
++              .name = "sig2_2", /* Yellow Led */
++              .gpio = 129,
++              .active_low = 1,
++      },{
++              .name = "sig3_1", /* Green Led */
++              .gpio = 130,
++              .active_low = 1,
++      },{
++              .name = "sig3_2", /* Yellow Led */
++              .gpio = 131,
++              .active_low = 1,
++      },{
++              .name = "net1", /*Green Led */
++              .gpio = 109,
++              .active_low = 1,
++      },{
++              .name = "net2", /* Red Led */
++              .gpio = 110,
++              .active_low = 1,
++      },{
++              .name = "mod1", /* Green Led */
++              .gpio = 111,
++              .active_low = 1,
++      },{
++              .name = "mod2", /* Red Led */
++              .gpio = 112,
++              .active_low = 1,
 +      },
 +};
 +
 +static struct gpio_led_platform_data laguna_gpio_leds_data = {
-+      .num_leds = 2,
++      .num_leds = 22,
 +      .leds = laguna_gpio_leds,
 +};
 +
 +
 +static struct pca953x_platform_data laguna_pca_data = {
 +      .gpio_base = 100,
++      .irq_base = -1,
++};
++
++static struct pca953x_platform_data laguna_pca2_data = {
++      .gpio_base = 116,
++      .irq_base = -1,
 +};
 +
 +static struct i2c_board_info __initdata laguna_i2c_devices[] = {
 +              I2C_BOARD_INFO("pca9555", 0x23),
 +              .platform_data = &laguna_pca_data,
 +      },{
++              I2C_BOARD_INFO("pca9555", 0x27),
++              .platform_data = &laguna_pca2_data,
++      },{
 +              I2C_BOARD_INFO("gsp", 0x29),
 +      },{
 +              I2C_BOARD_INFO ("24c08",0x50),
 +              if (laguna_net_data.ports)
 +                      platform_device_register(&laguna_net_device);
 +
-+              if (laguna_info.config_bitmap & (SATA0_LOAD | SATA1_LOAD))
++              if ((laguna_info.config_bitmap & SATA0_LOAD) ||
++                  (laguna_info.config_bitmap & SATA1_LOAD))
 +                      cns3xxx_ahci_init();
 +
 +              if (laguna_info.config_bitmap & (PCIE0_LOAD))
 +                      spi_register_board_info(laguna_spi_devices, ARRAY_SIZE(laguna_spi_devices));
 +              }
 +
-+              if (laguna_info.config_bitmap & (SPI0_LOAD | SPI1_LOAD)) {
++              if ((laguna_info.config_bitmap & SPI0_LOAD) ||
++                  (laguna_info.config_bitmap & SPI1_LOAD))
 +                      platform_device_register(&laguna_spi_controller);
-+              }
 +
 +              /*
 +               * Do any model specific setup not known by the bitmap by matching
 +               */
 +
 +              if (strncmp(laguna_info.model, "GW2388", 6) == 0) {
-+                      platform_device_register(&laguna_gpio_leds_device);
++                      laguna_gpio_leds_data.num_leds = 2;
 +              } else if (strncmp(laguna_info.model, "GW2380", 6) == 0) {
 +                      laguna_gpio_leds[0].gpio = 107;
 +                      laguna_gpio_leds[1].gpio = 106;
 +                      laguna_gpio_leds_data.num_leds = 2;
-+                      platform_device_register(&laguna_gpio_leds_device);
 +              }
++              platform_device_register(&laguna_gpio_leds_device);
 +      } else {
 +              // Do some defaults here, not sure what yet
 +      }