X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/e054e9a416a774d7aef67ad165d45fe326ee0876..d9b73ec6744d03a52142bc36837750e8bb33b744:/target/linux/cns3xxx/patches/100-laguna_support.patch diff --git a/target/linux/cns3xxx/patches/100-laguna_support.patch b/target/linux/cns3xxx/patches/100-laguna_support.patch index 32becc30e..416b93945 100644 --- a/target/linux/cns3xxx/patches/100-laguna_support.patch +++ b/target/linux/cns3xxx/patches/100-laguna_support.patch @@ -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 + * @@ -201,11 +201,91 @@ + .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, +}; + @@ -446,6 +526,12 @@ + +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[] = { @@ -453,6 +539,9 @@ + 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), @@ -548,7 +637,8 @@ + 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)) @@ -640,9 +730,9 @@ + 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 @@ -650,13 +740,13 @@ + */ + + 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 + } @@ -874,8 +964,8 @@ + iotable_init(cns3xxx_pcie[i].cfg_bases, ARRAY_SIZE(cns3xxx_pcie[i].cfg_bases)); - cns3xxx_pwr_clk_en(0x1 << PM_CLK_GATE_REG_OFFSET_PCIE(i)); -@@ -386,4 +389,3 @@ static int __init cns3xxx_pcie_init(void + cns3xxx_pcie_check_link(&cns3xxx_pcie[i]); +@@ -384,4 +387,3 @@ static int __init cns3xxx_pcie_init(void return 0; }