#define ltq_pci_cfg_r32(x) ltq_r32(ltq_pci_mapped_cfg + (x))
struct ltq_pci_gpio_map {
- int pin;
- int alt0;
- int alt1;
- int dir;
+ unsigned int pin;
+ unsigned int mux;
+ unsigned char dir;
char *name;
};
/* the pci core can make use of the following gpios */
static struct ltq_pci_gpio_map ltq_pci_gpio_map[] = {
- { 0, 1, 0, 0, "pci-exin0" },
- { 1, 1, 0, 0, "pci-exin1" },
- { 2, 1, 0, 0, "pci-exin2" },
- { 39, 1, 0, 0, "pci-exin3" },
- { 10, 1, 0, 0, "pci-exin4" },
- { 9, 1, 0, 0, "pci-exin5" },
- { 30, 1, 0, 1, "pci-gnt1" },
- { 23, 1, 0, 1, "pci-gnt2" },
- { 19, 1, 0, 1, "pci-gnt3" },
- { 38, 1, 0, 1, "pci-gnt4" },
- { 29, 1, 0, 0, "pci-req1" },
- { 31, 1, 0, 0, "pci-req2" },
- { 3, 1, 0, 0, "pci-req3" },
- { 37, 1, 0, 0, "pci-req4" },
+ { .pin = 0, .mux = 2, .dir = 0, .name = "pci-exin0" },
+ { .pin = 1, .mux = 2, .dir = 0, .name = "pci-exin1" },
+ { .pin = 2, .mux = 2, .dir = 0, .name = "pci-exin2" },
+ { .pin = 39, .mux = 2, .dir = 0, .name = "pci-exin3" },
+ { .pin = 10, .mux = 2, .dir = 0, .name = "pci-exin4" },
+ { .pin = 9, .mux = 2, .dir = 0, .name = "pci-exin5" },
+ { .pin = 30, .mux = 2, .dir = 1, .name = "pci-gnt1" },
+ { .pin = 23, .mux = 2, .dir = 1, .name = "pci-gnt2" },
+ { .pin = 19, .mux = 2, .dir = 1, .name = "pci-gnt3" },
+ { .pin = 38, .mux = 2, .dir = 1, .name = "pci-gnt4" },
+ { .pin = 29, .mux = 2, .dir = 0, .name = "pci-req1" },
+ { .pin = 31, .mux = 2, .dir = 0, .name = "pci-req2" },
+ { .pin = 3, .mux = 2, .dir = 0, .name = "pci-req3" },
+ { .pin = 37, .mux = 2, .dir = 0, .name = "pci-req4" },
};
__iomem void *ltq_pci_mapped_cfg;
for (i = 0; i < ARRAY_SIZE(ltq_pci_gpio_map); i++) {
if (gpio & (1 << i)) {
ltq_gpio_request(ltq_pci_gpio_map[i].pin,
- ltq_pci_gpio_map[i].alt0,
- ltq_pci_gpio_map[i].alt1,
+ ltq_pci_gpio_map[i].mux,
ltq_pci_gpio_map[i].dir,
ltq_pci_gpio_map[i].name);
}
}
- ltq_gpio_request(21, 0, 0, 1, "pci-reset");
+ ltq_gpio_request(21, 0, 1, "pci-reset");
ltq_pci_req_mask = (gpio >> PCI_REQ_SHIFT) & PCI_REQ_MASK;
}