#define USBH2_PS_CONTROLLABLE 0 static struct gpio_pin gpio_pins_mtcdp_0_0[] = { { .name = "ENIO", .pin = AT91_PIN_PC15, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, { .name = "ETH0_ENABLED", .attr_name = "eth0-enabled", .pin = AT91_PIN_PB31, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, { .name = "RADIO_RESET", .attr_name = "radio-reset", .pin = AT91_PIN_PB30, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, { .name = "DEVICE_RESET", .attr_name = "reset", .pin = AT91_PIN_PA22, .direction = GPIO_DIR_INPUT, .output_value = 0, .use_pullup = 0, .active_low = 1, }, { .name = "LS_LED", .attr_name = "led-ls", .pin = AT91_PIN_PC9, #if LED_LS_CONTROLLABLE .direction = GPIO_DIR_OUTPUT, #else .direction = GPIO_DIR_INPUT, #endif .output_value = 1, .use_pullup = 0, .active_low = 1, }, { .name = "STATUS_LED", .attr_name = "led-status", .pin = AT91_PIN_PA30, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, { .name = "STATUS_LED", .attr_name = "led-sdk-a", .pin = AT91_PIN_PA30, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, #endif { .name = "RSERSRC", .attr_name = "rsersrc", .pin = AT91_PIN_PC7, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, .active_low = 1, }, { .name = "DTR1", .attr_name = "extserial-dtr", .pin = AT91_PIN_PC10, .direction = GPIO_DIR_INPUT, .output_value = 0, .use_pullup = 0, .active_low = 1, }, { }, }; static struct gpio_pin gpio_pins_mtcdp_1_0[] = { { .name = "ENIO", .pin = AT91_PIN_PC15, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, { .name = "ETH0_ENABLED", .attr_name = "eth0-enabled", .pin = AT91_PIN_PB31, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, { .name = "RADIO_RESET", .attr_name = "radio-reset", .pin = AT91_PIN_PB30, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, { .name = "DEVICE_RESET", .attr_name = "reset", .pin = AT91_PIN_PA22, .direction = GPIO_DIR_INPUT, .output_value = 0, .use_pullup = 0, .active_low = 1, }, { .name = "LS_LED", .attr_name = "led-ls", .pin = AT91_PIN_PC9, #if LED_LS_CONTROLLABLE .direction = GPIO_DIR_OUTPUT, #else .direction = GPIO_DIR_INPUT, #endif .output_value = 1, .use_pullup = 0, .active_low = 1, }, { .name = "STATUS_LED", .attr_name = "led-status", .pin = AT91_PIN_PA30, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, { .name = "STATUS_LED", .attr_name = "led-sdk-a", .pin = AT91_PIN_PA30, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, { .name = "RSERSRC", .attr_name = "rsersrc", .pin = AT91_PIN_PC7, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, .active_low = 1, }, { .name = "TXD1", .pin = AT91_PIN_PB17, .direction = GPIO_DIR_INPUT, .output_value = 0, .use_pullup = 0, }, { .name = "DTR1", .attr_name = "extserial-dtr", .pin = AT91_PIN_PB18, .direction = GPIO_DIR_INPUT, .output_value = 0, .use_pullup = 0, .active_low = 1, }, { .name = "USBH2_PS_OC", .attr_name = "usbh2-ps-oc", .pin = AT91_PIN_PB19, .direction = GPIO_DIR_INPUT, .output_value = 0, .use_pullup = 0, .active_low = 1, }, #if USBH2_PS_CONTROLLABLE { .name = "USBH2_PS_ENABLED", .attr_name = "usbh2-ps-enabled", .pin = AT91_PIN_PB20, .direction = GPIO_DIR_OUTPUT, .output_value = 0, .use_pullup = 0, .active_low = 1, }, #endif { .name = "NDC_RESET", .attr_name = "ndc-reset", .pin = AT91_PIN_PB21, .direction = GPIO_DIR_OUTPUT, .output_value = 1, .use_pullup = 0, }, { .name = "ADC0", .pin = AT91_PIN_PC0, .direction = GPIO_DIR_INPUT, .output_value = 0, .use_pullup = 0, }, { .name = "ADC1", .pin = AT91_PIN_PC1, .direction = GPIO_DIR_INPUT, .output_value = 0, .use_pullup = 0, }, { .name = "ADC2", .pin = AT91_PIN_PC2, .direction = GPIO_DIR_INPUT, .output_value = 0, .use_pullup = 0, }, { .name = "ADC3", .pin = AT91_PIN_PC3, .direction = GPIO_DIR_INPUT, .output_value = 0, .use_pullup = 0, }, { }, }; /* mtcdp specific attributes */ static DEVICE_ATTR_MTS(dev_attr_led_sdk_a, "led-sdk-a", mts_attr_show_gpio_pin, mts_attr_store_gpio_pin); static DEVICE_ATTR_RO_MTS(dev_attr_usbh2_ps_oc, "usbh2-ps-oc", mts_attr_show_gpio_pin); #if USBH2_PS_CONTROLLABLE static DEVICE_ATTR_MTS(dev_attr_usbh2_ps_enabled, "usbh2-ps-enabled", mts_attr_show_gpio_pin, mts_attr_store_gpio_pin); #endif static struct attribute *mtcdp_platform_attributes[] = { &dev_attr_vendor_id.attr, &dev_attr_product_id.attr, &dev_attr_device_id.attr, &dev_attr_hw_version.attr, &dev_attr_imei.attr, &dev_attr_eth_mac.attr, &dev_attr_reset.attr, &dev_attr_reset_monitor.attr, &dev_attr_radio_reset.attr, &dev_attr_ndc_reset.attr, &dev_attr_eth0_enabled.attr, &dev_attr_extserial_dtr.attr, &dev_attr_led_ls.attr, &dev_attr_led_status.attr, &dev_attr_led_sdk_a.attr, &dev_attr_usbh2_ps_oc.attr, #if USBH2_PS_CONTROLLABLE &dev_attr_usbh2_ps_enabled.attr, #endif &dev_attr_extserial_dcd.attr, &dev_attr_extserial_ri.attr, &dev_attr_extserial_dsr.attr, &dev_attr_led_cd.attr, &dev_attr_led_sdk_b.attr, &dev_attr_led_sig1.attr, &dev_attr_led_sdk_c.attr, &dev_attr_led_sig2.attr, &dev_attr_led_sdk_d.attr, &dev_attr_led_sig3.attr, &dev_attr_led_sdk_e.attr, &dev_attr_led_dtr.attr, &dev_attr_led_sdk_f.attr, &dev_attr_dout0.attr, &dev_attr_dout1.attr, &dev_attr_dout2.attr, &dev_attr_dout3.attr, &dev_attr_dout4.attr, &dev_attr_dout5.attr, &dev_attr_dout6.attr, &dev_attr_dout7.attr, &dev_attr_din0.attr, &dev_attr_din1.attr, &dev_attr_din2.attr, &dev_attr_din3.attr, &dev_attr_din4.attr, &dev_attr_din5.attr, &dev_attr_din6.attr, &dev_attr_din7.attr, &dev_attr_board_temperature.attr, &dev_attr_adc0.attr, &dev_attr_adc1.attr, &dev_attr_adc2.attr, &dev_attr_adc3.attr, NULL, }; static struct attribute_group mtcdp_platform_attribute_group = { .attrs = mtcdp_platform_attributes };