Aby odblokować gpio trzeba zakomentować odpowiednią linijkę w pliku:
build_dir/linux-adm5120_router_le/linux-2.6.32.27/arch/mips/adm5120/edimax/br-6104kp.c
Tutaj mamy wszystkie gpio zajęte przez led'y, które można wykorzystać do w1:
static struct gpio_led br6104kp_gpio_leds[] __initdata = {
GPIO_LED_STD(ADM5120_GPIO_PIN0, "power", NULL),
GPIO_LED_INV(ADM5120_GPIO_PIN3, "usb1", NULL),
GPIO_LED_INV(ADM5120_GPIO_PIN1, "usb2", NULL),
GPIO_LED_INV(ADM5120_GPIO_P0L1, "wan_speed", NULL),
GPIO_LED_INV(ADM5120_GPIO_P0L0, "wan_lnkact", NULL),
GPIO_LED_INV(ADM5120_GPIO_P1L1, "lan1_speed", NULL),
GPIO_LED_INV(ADM5120_GPIO_P1L0, "lan1_lnkact", NULL),
GPIO_LED_INV(ADM5120_GPIO_P2L1, "lan2_speed", NULL),
GPIO_LED_INV(ADM5120_GPIO_P2L0, "lan2_lnkact", NULL),
GPIO_LED_INV(ADM5120_GPIO_P3L1, "lan3_speed", NULL),
GPIO_LED_INV(ADM5120_GPIO_P3L0, "lan3_lnkact", NULL),
//GPIO_LED_INV(ADM5120_GPIO_P4L1, "lan4_speed", NULL),
GPIO_LED_INV(ADM5120_GPIO_P4L0, "lan4_lnkact", NULL),
};
Aby znaleźć numerek GPIO który podajemy przy komendzie insmod w1-gpio-custom możemy użyć takiej komendy(najlepiej być w katalogu ze źródłami od linux'a):
find * -print | xargs grep ADM5120_GPIO_P4L1 | grep define
Ja zrobiłem to właśnie na tym pinie, dodatkowo wylutowałem rezystor ograniczający prąd diody i zwarłem dzięki temu na jednej nóżce miałem gpio a na drugiej Vcc 3,3V, gnd wziąłem ze złącza do transmisji szeregowej. Wartość rezystora podciągającego miałem 4,7k zmniejszyłem go do 1k bo miałem często błędy w transmisji ale to nic nie dało.