|
|
|
@ -18,7 +18,10 @@ |
|
|
|
|
#include <linux/gpio.h> |
|
|
|
|
#include <linux/leds.h> |
|
|
|
|
#include <linux/atmel-mci.h> |
|
|
|
|
#include <linux/atmel-pwm-bl.h> |
|
|
|
|
#include <linux/pwm.h> |
|
|
|
|
#include <linux/pwm_backlight.h> |
|
|
|
|
#include <linux/regulator/fixed.h> |
|
|
|
|
#include <linux/regulator/machine.h> |
|
|
|
|
#include <linux/spi/spi.h> |
|
|
|
|
#include <linux/spi/ads7846.h> |
|
|
|
|
|
|
|
|
@ -33,6 +36,8 @@ |
|
|
|
|
#include <mach/board.h> |
|
|
|
|
#include <mach/portmux.h> |
|
|
|
|
|
|
|
|
|
#define PWM_BL_CH 2 |
|
|
|
|
|
|
|
|
|
/* Oscillator frequencies. These are board-specific */ |
|
|
|
|
unsigned long at32_board_osc_rates[3] = { |
|
|
|
|
[0] = 32768, /* 32.768 kHz on RTC osc */ |
|
|
|
@ -227,29 +232,36 @@ void __init favr32_setup_leds(void) |
|
|
|
|
platform_device_register(&favr32_led_dev); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static struct atmel_pwm_bl_platform_data atmel_pwm_bl_pdata = { |
|
|
|
|
.pwm_channel = 2, |
|
|
|
|
.pwm_frequency = 200000, |
|
|
|
|
.pwm_compare_max = 345, |
|
|
|
|
.pwm_duty_max = 345, |
|
|
|
|
.pwm_duty_min = 90, |
|
|
|
|
.pwm_active_low = 1, |
|
|
|
|
.gpio_on = GPIO_PIN_PA(28), |
|
|
|
|
.on_active_low = 0, |
|
|
|
|
static struct pwm_lookup pwm_lookup[] = { |
|
|
|
|
PWM_LOOKUP("at91sam9rl-pwm", PWM_BL_CH, "pwm-backlight.0", NULL, |
|
|
|
|
5000, PWM_POLARITY_INVERSED), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static struct platform_device atmel_pwm_bl_dev = { |
|
|
|
|
.name = "atmel-pwm-bl", |
|
|
|
|
.id = 0, |
|
|
|
|
.dev = { |
|
|
|
|
.platform_data = &atmel_pwm_bl_pdata, |
|
|
|
|
static struct regulator_consumer_supply fixed_power_consumers[] = { |
|
|
|
|
REGULATOR_SUPPLY("power", "pwm-backlight.0"), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static struct platform_pwm_backlight_data pwm_bl_data = { |
|
|
|
|
.enable_gpio = GPIO_PIN_PA(28), |
|
|
|
|
.max_brightness = 255, |
|
|
|
|
.dft_brightness = 255, |
|
|
|
|
.lth_brightness = 50, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static struct platform_device pwm_bl_device = { |
|
|
|
|
.name = "pwm-backlight", |
|
|
|
|
.dev = { |
|
|
|
|
.platform_data = &pwm_bl_data, |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static void __init favr32_setup_atmel_pwm_bl(void) |
|
|
|
|
{ |
|
|
|
|
platform_device_register(&atmel_pwm_bl_dev); |
|
|
|
|
at32_select_gpio(atmel_pwm_bl_pdata.gpio_on, 0); |
|
|
|
|
pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup)); |
|
|
|
|
regulator_register_always_on(0, "fixed", fixed_power_consumers, |
|
|
|
|
ARRAY_SIZE(fixed_power_consumers), 3300000); |
|
|
|
|
platform_device_register(&pwm_bl_device); |
|
|
|
|
at32_select_gpio(pwm_bl_data.enable_gpio, 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void __init setup_board(void) |
|
|
|
@ -339,7 +351,7 @@ static int __init favr32_init(void) |
|
|
|
|
|
|
|
|
|
set_abdac_rate(at32_add_device_abdac(0, &abdac0_data)); |
|
|
|
|
|
|
|
|
|
at32_add_device_pwm(1 << atmel_pwm_bl_pdata.pwm_channel); |
|
|
|
|
at32_add_device_pwm(1 << PWM_BL_CH); |
|
|
|
|
at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); |
|
|
|
|
at32_add_device_mci(0, &mci0_data); |
|
|
|
|
at32_add_device_usba(0, NULL); |
|
|
|
|