aboutsummaryrefslogtreecommitdiffstats
path: root/arch/avr32
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-08-08 14:34:32 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-08 14:34:32 -0400
commit10c8e0562057b5d64ea170feab148e1550420030 (patch)
treecfd387208c85e893c93d24e324d147eb6e9abfc9 /arch/avr32
parentd4e1f5a14e17d4f0e8034c0967511884bcb12fba (diff)
parent3e528cb7bae00ba0d73def6645d0f2fa906ee3e8 (diff)
Merge tag 'drivers-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC driver changes from Olof Johansson: "A handful of driver-related changes. We've had a bunch of them going in through other branches as well, so it's only a part of what we really have this release. Larger pieces are: - Removal of a now unused PWM driver for atmel [ This includes AVR32 changes that have been appropriately acked ] - Performance counter support for the arm CCN interconnect - OMAP mailbox driver cleanups and consolidation - PCI and SATA PHY drivers for SPEAr 13xx platforms - Redefinition (with backwards compatibility!) of PCI DT bindings for Tegra to better model regulators/power" Note: this merge also fixes up the semantic conflict with the new calling convention for devm_phy_create(), see commit f0ed817638b5 ("phy: core: Let node ptr of PHY point to PHY and not of PHY provider") that came in through Greg's USB tree. Semantic merge patch by Stephen Rothwell <sfr@canb.auug.org.au> through the next tree. * tag 'drivers-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (38 commits) bus: arm-ccn: Fix error handling at event allocation mailbox/omap: add a parent structure for every IP instance mailbox/omap: remove the private mailbox structure mailbox/omap: consolidate OMAP mailbox driver mailbox/omap: simplify the fifo assignment by using macros mailbox/omap: remove omap_mbox_type_t from mailbox ops mailbox/omap: remove OMAP1 mailbox driver mailbox/omap: use devm_* interfaces bus: ARM CCN: add PERF_EVENTS dependency bus: ARM CCN PMU driver PCI: spear: Remove spear13xx_pcie_remove() PCI: spear: Fix Section mismatch compilation warning for probe() ARM: tegra: Remove legacy PCIe power supply properties PCI: tegra: Remove deprecated power supply properties PCI: tegra: Implement accurate power supply scheme ARM: SPEAr13xx: Update defconfigs ARM: SPEAr13xx: Add pcie and miphy DT nodes ARM: SPEAr13xx: Add bindings and dt node for misc block ARM: SPEAr13xx: Fix static mapping table phy: Add drivers for PCIe and SATA phy on SPEAr13xx ...
Diffstat (limited to 'arch/avr32')
-rw-r--r--arch/avr32/boards/atngw100/mrmt.c34
-rw-r--r--arch/avr32/boards/favr-32/setup.c48
-rw-r--r--arch/avr32/boards/merisc/setup.c34
-rw-r--r--arch/avr32/configs/atngw100_mrmt_defconfig5
-rw-r--r--arch/avr32/configs/atstk1002_defconfig5
-rw-r--r--arch/avr32/configs/atstk1003_defconfig5
-rw-r--r--arch/avr32/configs/atstk1004_defconfig5
-rw-r--r--arch/avr32/configs/atstk1006_defconfig5
-rw-r--r--arch/avr32/configs/favr-32_defconfig6
-rw-r--r--arch/avr32/configs/merisc_defconfig5
-rw-r--r--arch/avr32/mach-at32ap/at32ap700x.c7
11 files changed, 96 insertions, 63 deletions
diff --git a/arch/avr32/boards/atngw100/mrmt.c b/arch/avr32/boards/atngw100/mrmt.c
index 1ba09e4c02b1..91146b416cdb 100644
--- a/arch/avr32/boards/atngw100/mrmt.c
+++ b/arch/avr32/boards/atngw100/mrmt.c
@@ -17,6 +17,8 @@
17#include <linux/types.h> 17#include <linux/types.h>
18#include <linux/fb.h> 18#include <linux/fb.h>
19#include <linux/leds.h> 19#include <linux/leds.h>
20#include <linux/pwm.h>
21#include <linux/leds_pwm.h>
20#include <linux/input.h> 22#include <linux/input.h>
21#include <linux/gpio_keys.h> 23#include <linux/gpio_keys.h>
22#include <linux/atmel_serial.h> 24#include <linux/atmel_serial.h>
@@ -155,21 +157,28 @@ static struct platform_device rmt_ts_device = {
155 157
156#ifdef CONFIG_BOARD_MRMT_BL_PWM 158#ifdef CONFIG_BOARD_MRMT_BL_PWM
157/* PWM LEDs: LCD Backlight, etc */ 159/* PWM LEDs: LCD Backlight, etc */
158static struct gpio_led rmt_pwm_led[] = { 160static struct pwm_lookup pwm_lookup[] = {
159 /* here the "gpio" is actually a PWM channel */ 161 PWM_LOOKUP("at91sam9rl-pwm", PWM_CH_BL, "leds_pwm", "ds1",
160 { .name = "backlight", .gpio = PWM_CH_BL, }, 162 5000, PWM_POLARITY_INVERSED),
161}; 163};
162 164
163static struct gpio_led_platform_data rmt_pwm_led_data = { 165static struct led_pwm pwm_leds[] = {
164 .num_leds = ARRAY_SIZE(rmt_pwm_led), 166 {
165 .leds = rmt_pwm_led, 167 .name = "backlight",
168 .max_brightness = 255,
169 },
170};
171
172static struct led_pwm_platform_data pwm_data = {
173 .num_leds = ARRAY_SIZE(pwm_leds),
174 .leds = pwm_leds,
166}; 175};
167 176
168static struct platform_device rmt_pwm_led_dev = { 177static struct platform_device leds_pwm = {
169 .name = "leds-atmel-pwm", 178 .name = "leds_pwm",
170 .id = -1, 179 .id = -1,
171 .dev = { 180 .dev = {
172 .platform_data = &rmt_pwm_led_data, 181 .platform_data = &pwm_data,
173 }, 182 },
174}; 183};
175#endif 184#endif
@@ -325,7 +334,8 @@ static int __init mrmt1_init(void)
325#ifdef CONFIG_BOARD_MRMT_BL_PWM 334#ifdef CONFIG_BOARD_MRMT_BL_PWM
326 /* Use PWM for Backlight controls */ 335 /* Use PWM for Backlight controls */
327 at32_add_device_pwm(1 << PWM_CH_BL); 336 at32_add_device_pwm(1 << PWM_CH_BL);
328 platform_device_register(&rmt_pwm_led_dev); 337 pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
338 platform_device_register(&leds_pwm);
329#else 339#else
330 /* Backlight always on */ 340 /* Backlight always on */
331 udelay( 1 ); 341 udelay( 1 );
diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c
index 1f121497b517..234cb071c601 100644
--- a/arch/avr32/boards/favr-32/setup.c
+++ b/arch/avr32/boards/favr-32/setup.c
@@ -18,7 +18,10 @@
18#include <linux/gpio.h> 18#include <linux/gpio.h>
19#include <linux/leds.h> 19#include <linux/leds.h>
20#include <linux/atmel-mci.h> 20#include <linux/atmel-mci.h>
21#include <linux/atmel-pwm-bl.h> 21#include <linux/pwm.h>
22#include <linux/pwm_backlight.h>
23#include <linux/regulator/fixed.h>
24#include <linux/regulator/machine.h>
22#include <linux/spi/spi.h> 25#include <linux/spi/spi.h>
23#include <linux/spi/ads7846.h> 26#include <linux/spi/ads7846.h>
24 27
@@ -33,6 +36,8 @@
33#include <mach/board.h> 36#include <mach/board.h>
34#include <mach/portmux.h> 37#include <mach/portmux.h>
35 38
39#define PWM_BL_CH 2
40
36/* Oscillator frequencies. These are board-specific */ 41/* Oscillator frequencies. These are board-specific */
37unsigned long at32_board_osc_rates[3] = { 42unsigned long at32_board_osc_rates[3] = {
38 [0] = 32768, /* 32.768 kHz on RTC osc */ 43 [0] = 32768, /* 32.768 kHz on RTC osc */
@@ -227,29 +232,36 @@ void __init favr32_setup_leds(void)
227 platform_device_register(&favr32_led_dev); 232 platform_device_register(&favr32_led_dev);
228} 233}
229 234
230static struct atmel_pwm_bl_platform_data atmel_pwm_bl_pdata = { 235static struct pwm_lookup pwm_lookup[] = {
231 .pwm_channel = 2, 236 PWM_LOOKUP("at91sam9rl-pwm", PWM_BL_CH, "pwm-backlight.0", NULL,
232 .pwm_frequency = 200000, 237 5000, PWM_POLARITY_INVERSED),
233 .pwm_compare_max = 345,
234 .pwm_duty_max = 345,
235 .pwm_duty_min = 90,
236 .pwm_active_low = 1,
237 .gpio_on = GPIO_PIN_PA(28),
238 .on_active_low = 0,
239}; 238};
240 239
241static struct platform_device atmel_pwm_bl_dev = { 240static struct regulator_consumer_supply fixed_power_consumers[] = {
242 .name = "atmel-pwm-bl", 241 REGULATOR_SUPPLY("power", "pwm-backlight.0"),
243 .id = 0, 242};
244 .dev = { 243
245 .platform_data = &atmel_pwm_bl_pdata, 244static struct platform_pwm_backlight_data pwm_bl_data = {
245 .enable_gpio = GPIO_PIN_PA(28),
246 .max_brightness = 255,
247 .dft_brightness = 255,
248 .lth_brightness = 50,
249};
250
251static struct platform_device pwm_bl_device = {
252 .name = "pwm-backlight",
253 .dev = {
254 .platform_data = &pwm_bl_data,
246 }, 255 },
247}; 256};
248 257
249static void __init favr32_setup_atmel_pwm_bl(void) 258static void __init favr32_setup_atmel_pwm_bl(void)
250{ 259{
251 platform_device_register(&atmel_pwm_bl_dev); 260 pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
252 at32_select_gpio(atmel_pwm_bl_pdata.gpio_on, 0); 261 regulator_register_always_on(0, "fixed", fixed_power_consumers,
262 ARRAY_SIZE(fixed_power_consumers), 3300000);
263 platform_device_register(&pwm_bl_device);
264 at32_select_gpio(pwm_bl_data.enable_gpio, 0);
253} 265}
254 266
255void __init setup_board(void) 267void __init setup_board(void)
@@ -339,7 +351,7 @@ static int __init favr32_init(void)
339 351
340 set_abdac_rate(at32_add_device_abdac(0, &abdac0_data)); 352 set_abdac_rate(at32_add_device_abdac(0, &abdac0_data));
341 353
342 at32_add_device_pwm(1 << atmel_pwm_bl_pdata.pwm_channel); 354 at32_add_device_pwm(1 << PWM_BL_CH);
343 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); 355 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
344 at32_add_device_mci(0, &mci0_data); 356 at32_add_device_mci(0, &mci0_data);
345 at32_add_device_usba(0, NULL); 357 at32_add_device_usba(0, NULL);
diff --git a/arch/avr32/boards/merisc/setup.c b/arch/avr32/boards/merisc/setup.c
index ed137e335796..83d896cc2aed 100644
--- a/arch/avr32/boards/merisc/setup.c
+++ b/arch/avr32/boards/merisc/setup.c
@@ -22,6 +22,8 @@
22#include <linux/irq.h> 22#include <linux/irq.h>
23#include <linux/fb.h> 23#include <linux/fb.h>
24#include <linux/atmel-mci.h> 24#include <linux/atmel-mci.h>
25#include <linux/pwm.h>
26#include <linux/leds_pwm.h>
25 27
26#include <asm/io.h> 28#include <asm/io.h>
27#include <asm/setup.h> 29#include <asm/setup.h>
@@ -167,24 +169,29 @@ static struct i2c_board_info __initdata i2c_info[] = {
167 }, 169 },
168}; 170};
169 171
170#ifdef CONFIG_LEDS_ATMEL_PWM 172#if IS_ENABLED(CONFIG_LEDS_PWM)
171static struct gpio_led stk_pwm_led[] = { 173static struct pwm_lookup pwm_lookup[] = {
174 PWM_LOOKUP("at91sam9rl-pwm", 0, "leds_pwm", "backlight",
175 5000, PWM_POLARITY_NORMAL),
176};
177
178static struct led_pwm pwm_leds[] = {
172 { 179 {
173 .name = "backlight", 180 .name = "backlight",
174 .gpio = 0, /* PWM channel 0 (LCD backlight) */ 181 .max_brightness = 255,
175 }, 182 },
176}; 183};
177 184
178static struct gpio_led_platform_data stk_pwm_led_data = { 185static struct led_pwm_platform_data pwm_data = {
179 .num_leds = ARRAY_SIZE(stk_pwm_led), 186 .num_leds = ARRAY_SIZE(pwm_leds),
180 .leds = stk_pwm_led, 187 .leds = pwm_leds,
181}; 188};
182 189
183static struct platform_device stk_pwm_led_dev = { 190static struct platform_device leds_pwm = {
184 .name = "leds-atmel-pwm", 191 .name = "leds_pwm",
185 .id = -1, 192 .id = -1,
186 .dev = { 193 .dev = {
187 .platform_data = &stk_pwm_led_data, 194 .platform_data = &pwm_data,
188 }, 195 },
189}; 196};
190#endif 197#endif
@@ -278,9 +285,10 @@ static int __init merisc_init(void)
278 285
279 at32_add_device_mci(0, &mci0_data); 286 at32_add_device_mci(0, &mci0_data);
280 287
281#ifdef CONFIG_LEDS_ATMEL_PWM 288#if IS_ENABLED(CONFIG_LEDS_PWM)
289 pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
282 at32_add_device_pwm((1 << 0) | (1 << 2)); 290 at32_add_device_pwm((1 << 0) | (1 << 2));
283 platform_device_register(&stk_pwm_led_dev); 291 platform_device_register(&leds_pwm);
284#else 292#else
285 at32_add_device_pwm((1 << 2)); 293 at32_add_device_pwm((1 << 2));
286#endif 294#endif
diff --git a/arch/avr32/configs/atngw100_mrmt_defconfig b/arch/avr32/configs/atngw100_mrmt_defconfig
index 9a57da44eb6f..6838781e966f 100644
--- a/arch/avr32/configs/atngw100_mrmt_defconfig
+++ b/arch/avr32/configs/atngw100_mrmt_defconfig
@@ -56,7 +56,6 @@ CONFIG_MTD_CFI_AMDSTD=y
56CONFIG_MTD_PHYSMAP=y 56CONFIG_MTD_PHYSMAP=y
57CONFIG_MTD_DATAFLASH=y 57CONFIG_MTD_DATAFLASH=y
58CONFIG_BLK_DEV_LOOP=y 58CONFIG_BLK_DEV_LOOP=y
59CONFIG_ATMEL_PWM=y
60CONFIG_NETDEVICES=y 59CONFIG_NETDEVICES=y
61CONFIG_NET_ETHERNET=y 60CONFIG_NET_ETHERNET=y
62CONFIG_MACB=y 61CONFIG_MACB=y
@@ -104,8 +103,8 @@ CONFIG_MMC=y
104CONFIG_MMC_ATMELMCI=y 103CONFIG_MMC_ATMELMCI=y
105CONFIG_NEW_LEDS=y 104CONFIG_NEW_LEDS=y
106CONFIG_LEDS_CLASS=y 105CONFIG_LEDS_CLASS=y
107CONFIG_LEDS_ATMEL_PWM=y
108CONFIG_LEDS_GPIO=y 106CONFIG_LEDS_GPIO=y
107CONFIG_LEDS_PWM=y
109CONFIG_LEDS_TRIGGERS=y 108CONFIG_LEDS_TRIGGERS=y
110CONFIG_LEDS_TRIGGER_TIMER=y 109CONFIG_LEDS_TRIGGER_TIMER=y
111CONFIG_LEDS_TRIGGER_HEARTBEAT=y 110CONFIG_LEDS_TRIGGER_HEARTBEAT=y
@@ -114,6 +113,8 @@ CONFIG_RTC_DRV_S35390A=m
114CONFIG_RTC_DRV_AT32AP700X=m 113CONFIG_RTC_DRV_AT32AP700X=m
115CONFIG_DMADEVICES=y 114CONFIG_DMADEVICES=y
116CONFIG_UIO=y 115CONFIG_UIO=y
116CONFIG_PWM=y
117CONFIG_PWM_ATMEL=y
117CONFIG_EXT2_FS=y 118CONFIG_EXT2_FS=y
118CONFIG_EXT2_FS_XATTR=y 119CONFIG_EXT2_FS_XATTR=y
119CONFIG_EXT3_FS=y 120CONFIG_EXT3_FS=y
diff --git a/arch/avr32/configs/atstk1002_defconfig b/arch/avr32/configs/atstk1002_defconfig
index 2813dd2b9138..b056820eef33 100644
--- a/arch/avr32/configs/atstk1002_defconfig
+++ b/arch/avr32/configs/atstk1002_defconfig
@@ -64,7 +64,6 @@ CONFIG_BLK_DEV_LOOP=m
64CONFIG_BLK_DEV_NBD=m 64CONFIG_BLK_DEV_NBD=m
65CONFIG_BLK_DEV_RAM=m 65CONFIG_BLK_DEV_RAM=m
66CONFIG_MISC_DEVICES=y 66CONFIG_MISC_DEVICES=y
67CONFIG_ATMEL_PWM=m
68CONFIG_ATMEL_TCLIB=y 67CONFIG_ATMEL_TCLIB=y
69CONFIG_ATMEL_SSC=m 68CONFIG_ATMEL_SSC=m
70# CONFIG_SCSI_PROC_FS is not set 69# CONFIG_SCSI_PROC_FS is not set
@@ -133,14 +132,16 @@ CONFIG_MMC_TEST=m
133CONFIG_MMC_ATMELMCI=y 132CONFIG_MMC_ATMELMCI=y
134CONFIG_NEW_LEDS=y 133CONFIG_NEW_LEDS=y
135CONFIG_LEDS_CLASS=y 134CONFIG_LEDS_CLASS=y
136CONFIG_LEDS_ATMEL_PWM=m
137CONFIG_LEDS_GPIO=m 135CONFIG_LEDS_GPIO=m
136CONFIG_LEDS_PWM=m
138CONFIG_LEDS_TRIGGERS=y 137CONFIG_LEDS_TRIGGERS=y
139CONFIG_LEDS_TRIGGER_TIMER=m 138CONFIG_LEDS_TRIGGER_TIMER=m
140CONFIG_LEDS_TRIGGER_HEARTBEAT=m 139CONFIG_LEDS_TRIGGER_HEARTBEAT=m
141CONFIG_RTC_CLASS=y 140CONFIG_RTC_CLASS=y
142CONFIG_RTC_DRV_AT32AP700X=y 141CONFIG_RTC_DRV_AT32AP700X=y
143CONFIG_DMADEVICES=y 142CONFIG_DMADEVICES=y
143CONFIG_PWM=y
144CONFIG_PWM_ATMEL=m
144CONFIG_EXT2_FS=y 145CONFIG_EXT2_FS=y
145CONFIG_EXT3_FS=y 146CONFIG_EXT3_FS=y
146# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 147# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
diff --git a/arch/avr32/configs/atstk1003_defconfig b/arch/avr32/configs/atstk1003_defconfig
index f8ff3a3baad4..0cd23a303da1 100644
--- a/arch/avr32/configs/atstk1003_defconfig
+++ b/arch/avr32/configs/atstk1003_defconfig
@@ -53,7 +53,6 @@ CONFIG_BLK_DEV_LOOP=m
53CONFIG_BLK_DEV_NBD=m 53CONFIG_BLK_DEV_NBD=m
54CONFIG_BLK_DEV_RAM=m 54CONFIG_BLK_DEV_RAM=m
55CONFIG_MISC_DEVICES=y 55CONFIG_MISC_DEVICES=y
56CONFIG_ATMEL_PWM=m
57CONFIG_ATMEL_TCLIB=y 56CONFIG_ATMEL_TCLIB=y
58CONFIG_ATMEL_SSC=m 57CONFIG_ATMEL_SSC=m
59# CONFIG_SCSI_PROC_FS is not set 58# CONFIG_SCSI_PROC_FS is not set
@@ -112,14 +111,16 @@ CONFIG_MMC_TEST=m
112CONFIG_MMC_ATMELMCI=y 111CONFIG_MMC_ATMELMCI=y
113CONFIG_NEW_LEDS=y 112CONFIG_NEW_LEDS=y
114CONFIG_LEDS_CLASS=y 113CONFIG_LEDS_CLASS=y
115CONFIG_LEDS_ATMEL_PWM=m
116CONFIG_LEDS_GPIO=m 114CONFIG_LEDS_GPIO=m
115CONFIG_LEDS_PWM=m
117CONFIG_LEDS_TRIGGERS=y 116CONFIG_LEDS_TRIGGERS=y
118CONFIG_LEDS_TRIGGER_TIMER=m 117CONFIG_LEDS_TRIGGER_TIMER=m
119CONFIG_LEDS_TRIGGER_HEARTBEAT=m 118CONFIG_LEDS_TRIGGER_HEARTBEAT=m
120CONFIG_RTC_CLASS=y 119CONFIG_RTC_CLASS=y
121CONFIG_RTC_DRV_AT32AP700X=y 120CONFIG_RTC_DRV_AT32AP700X=y
122CONFIG_DMADEVICES=y 121CONFIG_DMADEVICES=y
122CONFIG_PWM=y
123CONFIG_PWM_ATMEL=m
123CONFIG_EXT2_FS=y 124CONFIG_EXT2_FS=y
124CONFIG_EXT3_FS=y 125CONFIG_EXT3_FS=y
125# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 126# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
diff --git a/arch/avr32/configs/atstk1004_defconfig b/arch/avr32/configs/atstk1004_defconfig
index 992228e54e38..ac1041f5f85a 100644
--- a/arch/avr32/configs/atstk1004_defconfig
+++ b/arch/avr32/configs/atstk1004_defconfig
@@ -53,7 +53,6 @@ CONFIG_BLK_DEV_LOOP=m
53CONFIG_BLK_DEV_NBD=m 53CONFIG_BLK_DEV_NBD=m
54CONFIG_BLK_DEV_RAM=m 54CONFIG_BLK_DEV_RAM=m
55CONFIG_MISC_DEVICES=y 55CONFIG_MISC_DEVICES=y
56CONFIG_ATMEL_PWM=m
57CONFIG_ATMEL_TCLIB=y 56CONFIG_ATMEL_TCLIB=y
58CONFIG_ATMEL_SSC=m 57CONFIG_ATMEL_SSC=m
59# CONFIG_SCSI_PROC_FS is not set 58# CONFIG_SCSI_PROC_FS is not set
@@ -111,14 +110,16 @@ CONFIG_MMC_TEST=m
111CONFIG_MMC_ATMELMCI=y 110CONFIG_MMC_ATMELMCI=y
112CONFIG_NEW_LEDS=y 111CONFIG_NEW_LEDS=y
113CONFIG_LEDS_CLASS=y 112CONFIG_LEDS_CLASS=y
114CONFIG_LEDS_ATMEL_PWM=m
115CONFIG_LEDS_GPIO=m 113CONFIG_LEDS_GPIO=m
114CONFIG_LEDS_PWM=m
116CONFIG_LEDS_TRIGGERS=y 115CONFIG_LEDS_TRIGGERS=y
117CONFIG_LEDS_TRIGGER_TIMER=m 116CONFIG_LEDS_TRIGGER_TIMER=m
118CONFIG_LEDS_TRIGGER_HEARTBEAT=m 117CONFIG_LEDS_TRIGGER_HEARTBEAT=m
119CONFIG_RTC_CLASS=y 118CONFIG_RTC_CLASS=y
120CONFIG_RTC_DRV_AT32AP700X=y 119CONFIG_RTC_DRV_AT32AP700X=y
121CONFIG_DMADEVICES=y 120CONFIG_DMADEVICES=y
121CONFIG_PWM=y
122CONFIG_PWM_ATMEL=m
122CONFIG_EXT2_FS=y 123CONFIG_EXT2_FS=y
123CONFIG_EXT3_FS=y 124CONFIG_EXT3_FS=y
124# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 125# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
diff --git a/arch/avr32/configs/atstk1006_defconfig b/arch/avr32/configs/atstk1006_defconfig
index b8e698b0d1fa..ea4f670cb995 100644
--- a/arch/avr32/configs/atstk1006_defconfig
+++ b/arch/avr32/configs/atstk1006_defconfig
@@ -67,7 +67,6 @@ CONFIG_BLK_DEV_LOOP=m
67CONFIG_BLK_DEV_NBD=m 67CONFIG_BLK_DEV_NBD=m
68CONFIG_BLK_DEV_RAM=m 68CONFIG_BLK_DEV_RAM=m
69CONFIG_MISC_DEVICES=y 69CONFIG_MISC_DEVICES=y
70CONFIG_ATMEL_PWM=m
71CONFIG_ATMEL_TCLIB=y 70CONFIG_ATMEL_TCLIB=y
72CONFIG_ATMEL_SSC=m 71CONFIG_ATMEL_SSC=m
73# CONFIG_SCSI_PROC_FS is not set 72# CONFIG_SCSI_PROC_FS is not set
@@ -136,14 +135,16 @@ CONFIG_MMC_TEST=m
136CONFIG_MMC_ATMELMCI=y 135CONFIG_MMC_ATMELMCI=y
137CONFIG_NEW_LEDS=y 136CONFIG_NEW_LEDS=y
138CONFIG_LEDS_CLASS=y 137CONFIG_LEDS_CLASS=y
139CONFIG_LEDS_ATMEL_PWM=m
140CONFIG_LEDS_GPIO=m 138CONFIG_LEDS_GPIO=m
139CONFIG_LEDS_PWM=m
141CONFIG_LEDS_TRIGGERS=y 140CONFIG_LEDS_TRIGGERS=y
142CONFIG_LEDS_TRIGGER_TIMER=m 141CONFIG_LEDS_TRIGGER_TIMER=m
143CONFIG_LEDS_TRIGGER_HEARTBEAT=m 142CONFIG_LEDS_TRIGGER_HEARTBEAT=m
144CONFIG_RTC_CLASS=y 143CONFIG_RTC_CLASS=y
145CONFIG_RTC_DRV_AT32AP700X=y 144CONFIG_RTC_DRV_AT32AP700X=y
146CONFIG_DMADEVICES=y 145CONFIG_DMADEVICES=y
146CONFIG_PWM=y
147CONFIG_PWM_ATMEL=m
147CONFIG_EXT2_FS=y 148CONFIG_EXT2_FS=y
148CONFIG_EXT3_FS=y 149CONFIG_EXT3_FS=y
149# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 150# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
diff --git a/arch/avr32/configs/favr-32_defconfig b/arch/avr32/configs/favr-32_defconfig
index 07bed3f7eb5e..b3eb67dc05ac 100644
--- a/arch/avr32/configs/favr-32_defconfig
+++ b/arch/avr32/configs/favr-32_defconfig
@@ -67,7 +67,6 @@ CONFIG_MTD_PHYSMAP=y
67CONFIG_BLK_DEV_LOOP=m 67CONFIG_BLK_DEV_LOOP=m
68CONFIG_BLK_DEV_NBD=m 68CONFIG_BLK_DEV_NBD=m
69CONFIG_BLK_DEV_RAM=m 69CONFIG_BLK_DEV_RAM=m
70CONFIG_ATMEL_PWM=m
71CONFIG_ATMEL_TCLIB=y 70CONFIG_ATMEL_TCLIB=y
72CONFIG_ATMEL_SSC=m 71CONFIG_ATMEL_SSC=m
73CONFIG_NETDEVICES=y 72CONFIG_NETDEVICES=y
@@ -108,7 +107,7 @@ CONFIG_FB=y
108CONFIG_FB_ATMEL=y 107CONFIG_FB_ATMEL=y
109CONFIG_BACKLIGHT_LCD_SUPPORT=y 108CONFIG_BACKLIGHT_LCD_SUPPORT=y
110# CONFIG_LCD_CLASS_DEVICE is not set 109# CONFIG_LCD_CLASS_DEVICE is not set
111CONFIG_BACKLIGHT_ATMEL_PWM=m 110CONFIG_BACKLIGHT_PWM=m
112CONFIG_SOUND=m 111CONFIG_SOUND=m
113CONFIG_SOUND_PRIME=m 112CONFIG_SOUND_PRIME=m
114# CONFIG_HID_SUPPORT is not set 113# CONFIG_HID_SUPPORT is not set
@@ -123,7 +122,6 @@ CONFIG_MMC=y
123CONFIG_MMC_ATMELMCI=y 122CONFIG_MMC_ATMELMCI=y
124CONFIG_NEW_LEDS=y 123CONFIG_NEW_LEDS=y
125CONFIG_LEDS_CLASS=y 124CONFIG_LEDS_CLASS=y
126CONFIG_LEDS_ATMEL_PWM=m
127CONFIG_LEDS_GPIO=y 125CONFIG_LEDS_GPIO=y
128CONFIG_LEDS_TRIGGERS=y 126CONFIG_LEDS_TRIGGERS=y
129CONFIG_LEDS_TRIGGER_TIMER=y 127CONFIG_LEDS_TRIGGER_TIMER=y
@@ -132,6 +130,8 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
132CONFIG_RTC_CLASS=y 130CONFIG_RTC_CLASS=y
133CONFIG_RTC_DRV_AT32AP700X=y 131CONFIG_RTC_DRV_AT32AP700X=y
134CONFIG_DMADEVICES=y 132CONFIG_DMADEVICES=y
133CONFIG_PWM=y
134CONFIG_PWM_ATMEL=y
135CONFIG_EXT2_FS=y 135CONFIG_EXT2_FS=y
136CONFIG_EXT3_FS=y 136CONFIG_EXT3_FS=y
137# CONFIG_EXT3_FS_XATTR is not set 137# CONFIG_EXT3_FS_XATTR is not set
diff --git a/arch/avr32/configs/merisc_defconfig b/arch/avr32/configs/merisc_defconfig
index 91df6b2986be..b9ef4cc85d08 100644
--- a/arch/avr32/configs/merisc_defconfig
+++ b/arch/avr32/configs/merisc_defconfig
@@ -55,7 +55,6 @@ CONFIG_MTD_ABSENT=y
55CONFIG_MTD_PHYSMAP=y 55CONFIG_MTD_PHYSMAP=y
56CONFIG_MTD_BLOCK2MTD=y 56CONFIG_MTD_BLOCK2MTD=y
57CONFIG_BLK_DEV_LOOP=y 57CONFIG_BLK_DEV_LOOP=y
58CONFIG_ATMEL_PWM=y
59CONFIG_ATMEL_SSC=y 58CONFIG_ATMEL_SSC=y
60CONFIG_SCSI=y 59CONFIG_SCSI=y
61CONFIG_BLK_DEV_SD=y 60CONFIG_BLK_DEV_SD=y
@@ -103,12 +102,14 @@ CONFIG_MMC=y
103CONFIG_MMC_ATMELMCI=y 102CONFIG_MMC_ATMELMCI=y
104CONFIG_NEW_LEDS=y 103CONFIG_NEW_LEDS=y
105CONFIG_LEDS_CLASS=y 104CONFIG_LEDS_CLASS=y
106CONFIG_LEDS_ATMEL_PWM=y 105CONFIG_LEDS_PWM=y
107CONFIG_RTC_CLASS=y 106CONFIG_RTC_CLASS=y
108# CONFIG_RTC_HCTOSYS is not set 107# CONFIG_RTC_HCTOSYS is not set
109CONFIG_RTC_DRV_PCF8563=y 108CONFIG_RTC_DRV_PCF8563=y
110CONFIG_DMADEVICES=y 109CONFIG_DMADEVICES=y
111CONFIG_UIO=y 110CONFIG_UIO=y
111CONFIG_PWM=y
112CONFIG_PWM_ATMEL=m
112CONFIG_EXT2_FS=y 113CONFIG_EXT2_FS=y
113# CONFIG_DNOTIFY is not set 114# CONFIG_DNOTIFY is not set
114CONFIG_FUSE_FS=y 115CONFIG_FUSE_FS=y
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c
index a1f4d1e91b52..db85b5ec3351 100644
--- a/arch/avr32/mach-at32ap/at32ap700x.c
+++ b/arch/avr32/mach-at32ap/at32ap700x.c
@@ -1553,7 +1553,7 @@ static struct resource atmel_pwm0_resource[] __initdata = {
1553 IRQ(24), 1553 IRQ(24),
1554}; 1554};
1555static struct clk atmel_pwm0_mck = { 1555static struct clk atmel_pwm0_mck = {
1556 .name = "pwm_clk", 1556 .name = "at91sam9rl-pwm",
1557 .parent = &pbb_clk, 1557 .parent = &pbb_clk,
1558 .mode = pbb_clk_mode, 1558 .mode = pbb_clk_mode,
1559 .get_rate = pbb_clk_get_rate, 1559 .get_rate = pbb_clk_get_rate,
@@ -1568,7 +1568,7 @@ struct platform_device *__init at32_add_device_pwm(u32 mask)
1568 if (!mask) 1568 if (!mask)
1569 return NULL; 1569 return NULL;
1570 1570
1571 pdev = platform_device_alloc("atmel_pwm", 0); 1571 pdev = platform_device_alloc("at91sam9rl-pwm", 0);
1572 if (!pdev) 1572 if (!pdev)
1573 return NULL; 1573 return NULL;
1574 1574
@@ -1576,9 +1576,6 @@ struct platform_device *__init at32_add_device_pwm(u32 mask)
1576 ARRAY_SIZE(atmel_pwm0_resource))) 1576 ARRAY_SIZE(atmel_pwm0_resource)))
1577 goto out_free_pdev; 1577 goto out_free_pdev;
1578 1578
1579 if (platform_device_add_data(pdev, &mask, sizeof(mask)))
1580 goto out_free_pdev;
1581
1582 pin_mask = 0; 1579 pin_mask = 0;
1583 if (mask & (1 << 0)) 1580 if (mask & (1 << 0))
1584 pin_mask |= (1 << 28); 1581 pin_mask |= (1 << 28);