Hi, On Thu, 31 Mar 2011, Ameya Palande wrote:
+static int rx51_lp5523_setup(void) +{ + int err; + + err = gpio_request(RX51_LP5523_CHIP_EN_GPIO, "lp5523_enable"); + if (err < 0) { + pr_err("Unable to get lp5523_enable GPIO\n"); + return err; + } + + err = gpio_direction_output(RX51_LP5523_CHIP_EN_GPIO, 1); + if (err < 0) { + pr_err("Failed to change direction for %d GPIO\n", + RX51_LP5523_CHIP_EN_GPIO);
The error branch is missing gpio_free(). You can fix that by replacing these with just a single gpio_request_one() call.
+ } + return err; +} + +static void rx51_lp5523_release(void) +{ + gpio_free(RX51_LP5523_CHIP_EN_GPIO); +} + +static void rx51_lp5523_enable(bool state) +{ + if (state) + gpio_set_value(RX51_LP5523_CHIP_EN_GPIO, 1); + else + gpio_set_value(RX51_LP5523_CHIP_EN_GPIO, 0); +} + +static struct lp5523_platform_data rx51_lp5523_platform_data = { + .led_config = rx51_lp5523_led_config, + .num_channels = ARRAY_SIZE(rx51_lp5523_led_config), + .clock_mode = LP5523_CLOCK_AUTO, + .setup_resources = rx51_lp5523_setup, + .release_resources = rx51_lp5523_release, + .enable = rx51_lp5523_enable, +}; +#endif + static struct omap2_mcspi_device_config wl1251_mcspi_config = { .turbo_mode = 0, .single_channel = 1, @@ -816,6 +891,12 @@ static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = { .platform_data = &rx51_tsl2563_platform_data, }, #endif +#if defined(CONFIG_LEDS_LP5523) || defined(CONFIG_LEDS_LP5523_MODULE) + { + I2C_BOARD_INFO("lp5523", 0x32), + .platform_data = &rx51_lp5523_platform_data, + }, +#endif { I2C_BOARD_INFO("tpa6130a2", 0x60), .platform_data = &rx51_tpa6130a2_data, -- 1.7.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
-- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html