diff options
author | Arnd Bergmann <arnd@arndb.de> | 2011-10-08 16:18:39 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-10-08 16:18:39 -0400 |
commit | 589a66da99b0c7d017216c465b770c9de5028783 (patch) | |
tree | c013d34ca3c2060ed3b9d8523a0cc4bbf6eefbd3 | |
parent | 32d80f97fe4a86b7e9de5d13030432de115119b1 (diff) | |
parent | 519dc3cdfd06fbb67111542fd50d6533b7d1d693 (diff) |
Merge branch 'fixes' into next/fixes
-rw-r--r-- | arch/arm/configs/at91sam9g45_defconfig | 214 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-2430sdp.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-4430sdp.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/hsmmc.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-omap2/irq.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/usb-musb.c | 3 | ||||
-rw-r--r-- | drivers/misc/Kconfig | 2 |
7 files changed, 224 insertions, 16 deletions
diff --git a/arch/arm/configs/at91sam9g45_defconfig b/arch/arm/configs/at91sam9g45_defconfig new file mode 100644 index 000000000000..c5876d244f4b --- /dev/null +++ b/arch/arm/configs/at91sam9g45_defconfig | |||
@@ -0,0 +1,214 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | ||
2 | # CONFIG_LOCALVERSION_AUTO is not set | ||
3 | # CONFIG_SWAP is not set | ||
4 | CONFIG_SYSVIPC=y | ||
5 | CONFIG_LOG_BUF_SHIFT=14 | ||
6 | CONFIG_SYSFS_DEPRECATED=y | ||
7 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
8 | CONFIG_BLK_DEV_INITRD=y | ||
9 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
10 | CONFIG_EMBEDDED=y | ||
11 | CONFIG_SLAB=y | ||
12 | CONFIG_MODULES=y | ||
13 | CONFIG_MODULE_UNLOAD=y | ||
14 | # CONFIG_LBDAF is not set | ||
15 | # CONFIG_BLK_DEV_BSG is not set | ||
16 | # CONFIG_IOSCHED_DEADLINE is not set | ||
17 | # CONFIG_IOSCHED_CFQ is not set | ||
18 | CONFIG_ARCH_AT91=y | ||
19 | CONFIG_ARCH_AT91SAM9G45=y | ||
20 | CONFIG_MACH_AT91SAM9M10G45EK=y | ||
21 | CONFIG_AT91_PROGRAMMABLE_CLOCKS=y | ||
22 | CONFIG_AT91_SLOW_CLOCK=y | ||
23 | CONFIG_AEABI=y | ||
24 | # CONFIG_OABI_COMPAT is not set | ||
25 | CONFIG_LEDS=y | ||
26 | CONFIG_LEDS_CPU=y | ||
27 | CONFIG_UACCESS_WITH_MEMCPY=y | ||
28 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
29 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
30 | CONFIG_CMDLINE="mem=128M console=ttyS0,115200 initrd=0x71100000,25165824 root=/dev/ram0 rw" | ||
31 | CONFIG_AUTO_ZRELADDR=y | ||
32 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
33 | CONFIG_NET=y | ||
34 | CONFIG_PACKET=y | ||
35 | CONFIG_UNIX=y | ||
36 | CONFIG_INET=y | ||
37 | CONFIG_IP_MULTICAST=y | ||
38 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set | ||
39 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set | ||
40 | # CONFIG_INET_XFRM_MODE_BEET is not set | ||
41 | # CONFIG_INET_DIAG is not set | ||
42 | CONFIG_IPV6=y | ||
43 | # CONFIG_INET6_XFRM_MODE_TRANSPORT is not set | ||
44 | # CONFIG_INET6_XFRM_MODE_TUNNEL is not set | ||
45 | # CONFIG_INET6_XFRM_MODE_BEET is not set | ||
46 | CONFIG_IPV6_SIT_6RD=y | ||
47 | CONFIG_CFG80211=y | ||
48 | CONFIG_LIB80211=y | ||
49 | CONFIG_MAC80211=y | ||
50 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
51 | CONFIG_DEVTMPFS=y | ||
52 | CONFIG_DEVTMPFS_MOUNT=y | ||
53 | # CONFIG_STANDALONE is not set | ||
54 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | ||
55 | CONFIG_MTD=y | ||
56 | CONFIG_MTD_CMDLINE_PARTS=y | ||
57 | CONFIG_MTD_CHAR=y | ||
58 | CONFIG_MTD_BLOCK=y | ||
59 | CONFIG_MTD_DATAFLASH=y | ||
60 | CONFIG_MTD_NAND=y | ||
61 | CONFIG_MTD_NAND_ATMEL=y | ||
62 | CONFIG_MTD_UBI=y | ||
63 | CONFIG_BLK_DEV_LOOP=y | ||
64 | CONFIG_BLK_DEV_RAM=y | ||
65 | CONFIG_BLK_DEV_RAM_COUNT=4 | ||
66 | CONFIG_BLK_DEV_RAM_SIZE=8192 | ||
67 | CONFIG_MISC_DEVICES=y | ||
68 | CONFIG_ATMEL_PWM=y | ||
69 | CONFIG_ATMEL_TCLIB=y | ||
70 | CONFIG_SCSI=y | ||
71 | CONFIG_BLK_DEV_SD=y | ||
72 | CONFIG_SCSI_MULTI_LUN=y | ||
73 | # CONFIG_SCSI_LOWLEVEL is not set | ||
74 | CONFIG_NETDEVICES=y | ||
75 | CONFIG_MII=y | ||
76 | CONFIG_DAVICOM_PHY=y | ||
77 | CONFIG_NET_ETHERNET=y | ||
78 | CONFIG_MACB=y | ||
79 | # CONFIG_NETDEV_1000 is not set | ||
80 | # CONFIG_NETDEV_10000 is not set | ||
81 | CONFIG_LIBERTAS_THINFIRM=m | ||
82 | CONFIG_LIBERTAS_THINFIRM_USB=m | ||
83 | CONFIG_AT76C50X_USB=m | ||
84 | CONFIG_USB_ZD1201=m | ||
85 | CONFIG_RTL8187=m | ||
86 | CONFIG_ATH_COMMON=m | ||
87 | CONFIG_ATH9K=m | ||
88 | CONFIG_CARL9170=m | ||
89 | CONFIG_B43=m | ||
90 | CONFIG_B43_PHY_N=y | ||
91 | CONFIG_LIBERTAS=m | ||
92 | CONFIG_LIBERTAS_USB=m | ||
93 | CONFIG_LIBERTAS_SDIO=m | ||
94 | CONFIG_LIBERTAS_SPI=m | ||
95 | CONFIG_RT2X00=m | ||
96 | CONFIG_RT2500USB=m | ||
97 | CONFIG_RT73USB=m | ||
98 | CONFIG_RT2800USB=m | ||
99 | CONFIG_RT2800USB_RT53XX=y | ||
100 | CONFIG_RT2800USB_UNKNOWN=y | ||
101 | CONFIG_RTL8192CU=m | ||
102 | CONFIG_WL1251=m | ||
103 | CONFIG_WL1251_SDIO=m | ||
104 | CONFIG_WL12XX_MENU=m | ||
105 | CONFIG_WL12XX=m | ||
106 | CONFIG_WL12XX_SDIO=m | ||
107 | CONFIG_ZD1211RW=m | ||
108 | CONFIG_MWIFIEX=m | ||
109 | CONFIG_MWIFIEX_SDIO=m | ||
110 | CONFIG_INPUT_POLLDEV=m | ||
111 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
112 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=480 | ||
113 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=272 | ||
114 | CONFIG_INPUT_JOYDEV=y | ||
115 | CONFIG_INPUT_EVDEV=y | ||
116 | # CONFIG_KEYBOARD_ATKBD is not set | ||
117 | CONFIG_KEYBOARD_QT1070=m | ||
118 | CONFIG_KEYBOARD_QT2160=m | ||
119 | CONFIG_KEYBOARD_GPIO=y | ||
120 | # CONFIG_INPUT_MOUSE is not set | ||
121 | CONFIG_INPUT_TOUCHSCREEN=y | ||
122 | CONFIG_TOUCHSCREEN_ATMEL_MXT=m | ||
123 | CONFIG_TOUCHSCREEN_ATMEL_TSADCC=y | ||
124 | # CONFIG_SERIO is not set | ||
125 | CONFIG_LEGACY_PTY_COUNT=4 | ||
126 | CONFIG_SERIAL_ATMEL=y | ||
127 | CONFIG_SERIAL_ATMEL_CONSOLE=y | ||
128 | CONFIG_HW_RANDOM=y | ||
129 | CONFIG_I2C=y | ||
130 | CONFIG_I2C_GPIO=y | ||
131 | CONFIG_SPI=y | ||
132 | CONFIG_SPI_ATMEL=y | ||
133 | # CONFIG_HWMON is not set | ||
134 | # CONFIG_MFD_SUPPORT is not set | ||
135 | CONFIG_FB=y | ||
136 | CONFIG_FB_ATMEL=y | ||
137 | CONFIG_FB_UDL=m | ||
138 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
139 | # CONFIG_LCD_CLASS_DEVICE is not set | ||
140 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
141 | CONFIG_BACKLIGHT_ATMEL_LCDC=y | ||
142 | # CONFIG_BACKLIGHT_GENERIC is not set | ||
143 | CONFIG_SOUND=y | ||
144 | CONFIG_SND=y | ||
145 | CONFIG_SND_SEQUENCER=y | ||
146 | CONFIG_SND_MIXER_OSS=y | ||
147 | CONFIG_SND_PCM_OSS=y | ||
148 | # CONFIG_SND_SUPPORT_OLD_API is not set | ||
149 | # CONFIG_SND_VERBOSE_PROCFS is not set | ||
150 | # CONFIG_SND_DRIVERS is not set | ||
151 | # CONFIG_SND_ARM is not set | ||
152 | CONFIG_SND_ATMEL_AC97C=y | ||
153 | # CONFIG_SND_SPI is not set | ||
154 | CONFIG_SND_USB_AUDIO=m | ||
155 | # CONFIG_USB_HID is not set | ||
156 | CONFIG_USB=y | ||
157 | CONFIG_USB_ANNOUNCE_NEW_DEVICES=y | ||
158 | CONFIG_USB_DEVICEFS=y | ||
159 | # CONFIG_USB_DEVICE_CLASS is not set | ||
160 | CONFIG_USB_EHCI_HCD=y | ||
161 | CONFIG_USB_OHCI_HCD=y | ||
162 | CONFIG_USB_ACM=y | ||
163 | CONFIG_USB_STORAGE=y | ||
164 | CONFIG_USB_GADGET=y | ||
165 | CONFIG_USB_ATMEL_USBA=m | ||
166 | CONFIG_USB_ZERO=m | ||
167 | CONFIG_USB_AUDIO=m | ||
168 | CONFIG_USB_ETH=m | ||
169 | CONFIG_USB_ETH_EEM=y | ||
170 | CONFIG_USB_MASS_STORAGE=m | ||
171 | CONFIG_USB_G_SERIAL=m | ||
172 | CONFIG_USB_CDC_COMPOSITE=m | ||
173 | CONFIG_USB_G_MULTI=m | ||
174 | CONFIG_USB_G_MULTI_CDC=y | ||
175 | CONFIG_MMC=y | ||
176 | # CONFIG_MMC_BLOCK_BOUNCE is not set | ||
177 | CONFIG_SDIO_UART=m | ||
178 | CONFIG_MMC_ATMELMCI=y | ||
179 | CONFIG_MMC_ATMELMCI_DMA=y | ||
180 | CONFIG_LEDS_ATMEL_PWM=y | ||
181 | CONFIG_LEDS_GPIO=y | ||
182 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
183 | CONFIG_LEDS_TRIGGER_HEARTBEAT=y | ||
184 | CONFIG_LEDS_TRIGGER_GPIO=y | ||
185 | CONFIG_RTC_CLASS=y | ||
186 | CONFIG_RTC_DRV_AT91RM9200=y | ||
187 | CONFIG_DMADEVICES=y | ||
188 | CONFIG_AT_HDMAC=y | ||
189 | CONFIG_DMATEST=m | ||
190 | # CONFIG_IOMMU_SUPPORT is not set | ||
191 | CONFIG_EXT2_FS=y | ||
192 | CONFIG_FANOTIFY=y | ||
193 | CONFIG_VFAT_FS=y | ||
194 | CONFIG_TMPFS=y | ||
195 | CONFIG_JFFS2_FS=y | ||
196 | CONFIG_JFFS2_SUMMARY=y | ||
197 | CONFIG_CRAMFS=m | ||
198 | CONFIG_SQUASHFS=m | ||
199 | CONFIG_SQUASHFS_EMBEDDED=y | ||
200 | CONFIG_NFS_FS=y | ||
201 | CONFIG_NFS_V3=y | ||
202 | CONFIG_NLS_CODEPAGE_437=y | ||
203 | CONFIG_NLS_CODEPAGE_850=y | ||
204 | CONFIG_NLS_ISO8859_1=y | ||
205 | CONFIG_STRIP_ASM_SYMS=y | ||
206 | # CONFIG_SCHED_DEBUG is not set | ||
207 | CONFIG_DEBUG_MEMORY_INIT=y | ||
208 | # CONFIG_FTRACE is not set | ||
209 | CONFIG_DEBUG_USER=y | ||
210 | CONFIG_CRYPTO_ECB=y | ||
211 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
212 | CONFIG_CRYPTO_USER_API_HASH=m | ||
213 | CONFIG_CRYPTO_USER_API_SKCIPHER=m | ||
214 | # CONFIG_CRYPTO_HW is not set | ||
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c index 2028464cf5b9..f79b7d2a8ed4 100644 --- a/arch/arm/mach-omap2/board-2430sdp.c +++ b/arch/arm/mach-omap2/board-2430sdp.c | |||
@@ -193,7 +193,8 @@ static int __init omap2430_i2c_init(void) | |||
193 | { | 193 | { |
194 | omap_register_i2c_bus(1, 100, sdp2430_i2c1_boardinfo, | 194 | omap_register_i2c_bus(1, 100, sdp2430_i2c1_boardinfo, |
195 | ARRAY_SIZE(sdp2430_i2c1_boardinfo)); | 195 | ARRAY_SIZE(sdp2430_i2c1_boardinfo)); |
196 | omap2_pmic_init("twl4030", &sdp2430_twldata); | 196 | omap_pmic_init(2, 100, "twl4030", INT_24XX_SYS_NIRQ, |
197 | &sdp2430_twldata); | ||
197 | return 0; | 198 | return 0; |
198 | } | 199 | } |
199 | 200 | ||
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index c7cef44c75d4..9e423ac74997 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -129,7 +129,7 @@ static const int sdp4430_keymap[] = { | |||
129 | KEY(7, 6, KEY_OK), | 129 | KEY(7, 6, KEY_OK), |
130 | KEY(7, 7, KEY_DOWN), | 130 | KEY(7, 7, KEY_DOWN), |
131 | }; | 131 | }; |
132 | static struct omap_device_pad keypad_pads[] __initdata = { | 132 | static struct omap_device_pad keypad_pads[] = { |
133 | { .name = "kpd_col1.kpd_col1", | 133 | { .name = "kpd_col1.kpd_col1", |
134 | .enable = OMAP_WAKEUP_EN | OMAP_MUX_MODE1, | 134 | .enable = OMAP_WAKEUP_EN | OMAP_MUX_MODE1, |
135 | }, | 135 | }, |
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index a9b45c76e1d3..097a42d81e59 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c | |||
@@ -137,8 +137,7 @@ static void omap4_hsmmc1_before_set_reg(struct device *dev, int slot, | |||
137 | */ | 137 | */ |
138 | reg = omap4_ctrl_pad_readl(control_pbias_offset); | 138 | reg = omap4_ctrl_pad_readl(control_pbias_offset); |
139 | reg &= ~(OMAP4_MMC1_PBIASLITE_PWRDNZ_MASK | | 139 | reg &= ~(OMAP4_MMC1_PBIASLITE_PWRDNZ_MASK | |
140 | OMAP4_MMC1_PWRDNZ_MASK | | 140 | OMAP4_MMC1_PWRDNZ_MASK); |
141 | OMAP4_USBC1_ICUSB_PWRDNZ_MASK); | ||
142 | omap4_ctrl_pad_writel(reg, control_pbias_offset); | 141 | omap4_ctrl_pad_writel(reg, control_pbias_offset); |
143 | } | 142 | } |
144 | 143 | ||
@@ -156,8 +155,7 @@ static void omap4_hsmmc1_after_set_reg(struct device *dev, int slot, | |||
156 | else | 155 | else |
157 | reg |= OMAP4_MMC1_PBIASLITE_VMODE_MASK; | 156 | reg |= OMAP4_MMC1_PBIASLITE_VMODE_MASK; |
158 | reg |= (OMAP4_MMC1_PBIASLITE_PWRDNZ_MASK | | 157 | reg |= (OMAP4_MMC1_PBIASLITE_PWRDNZ_MASK | |
159 | OMAP4_MMC1_PWRDNZ_MASK | | 158 | OMAP4_MMC1_PWRDNZ_MASK); |
160 | OMAP4_USBC1_ICUSB_PWRDNZ_MASK); | ||
161 | omap4_ctrl_pad_writel(reg, control_pbias_offset); | 159 | omap4_ctrl_pad_writel(reg, control_pbias_offset); |
162 | 160 | ||
163 | timeout = jiffies + msecs_to_jiffies(5); | 161 | timeout = jiffies + msecs_to_jiffies(5); |
@@ -171,16 +169,14 @@ static void omap4_hsmmc1_after_set_reg(struct device *dev, int slot, | |||
171 | if (reg & OMAP4_MMC1_PBIASLITE_VMODE_ERROR_MASK) { | 169 | if (reg & OMAP4_MMC1_PBIASLITE_VMODE_ERROR_MASK) { |
172 | pr_err("Pbias Voltage is not same as LDO\n"); | 170 | pr_err("Pbias Voltage is not same as LDO\n"); |
173 | /* Caution : On VMODE_ERROR Power Down MMC IO */ | 171 | /* Caution : On VMODE_ERROR Power Down MMC IO */ |
174 | reg &= ~(OMAP4_MMC1_PWRDNZ_MASK | | 172 | reg &= ~(OMAP4_MMC1_PWRDNZ_MASK); |
175 | OMAP4_USBC1_ICUSB_PWRDNZ_MASK); | ||
176 | omap4_ctrl_pad_writel(reg, control_pbias_offset); | 173 | omap4_ctrl_pad_writel(reg, control_pbias_offset); |
177 | } | 174 | } |
178 | } else { | 175 | } else { |
179 | reg = omap4_ctrl_pad_readl(control_pbias_offset); | 176 | reg = omap4_ctrl_pad_readl(control_pbias_offset); |
180 | reg |= (OMAP4_MMC1_PBIASLITE_PWRDNZ_MASK | | 177 | reg |= (OMAP4_MMC1_PBIASLITE_PWRDNZ_MASK | |
181 | OMAP4_MMC1_PWRDNZ_MASK | | 178 | OMAP4_MMC1_PWRDNZ_MASK | |
182 | OMAP4_MMC1_PBIASLITE_VMODE_MASK | | 179 | OMAP4_MMC1_PBIASLITE_VMODE_MASK); |
183 | OMAP4_USBC1_ICUSB_PWRDNZ_MASK); | ||
184 | omap4_ctrl_pad_writel(reg, control_pbias_offset); | 180 | omap4_ctrl_pad_writel(reg, control_pbias_offset); |
185 | } | 181 | } |
186 | } | 182 | } |
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index 3a12f7586a4c..65f1be6a182c 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c | |||
@@ -165,8 +165,8 @@ static void __init omap_init_irq(u32 base, int nr_irqs) | |||
165 | 165 | ||
166 | omap_irq_bank_init_one(bank); | 166 | omap_irq_bank_init_one(bank); |
167 | 167 | ||
168 | for (i = 0, j = 0; i < bank->nr_irqs; i += 32, j += 0x20) | 168 | for (j = 0; j < bank->nr_irqs; j += 32) |
169 | omap_alloc_gc(bank->base_reg + j, i, 32); | 169 | omap_alloc_gc(bank->base_reg + j, j, 32); |
170 | 170 | ||
171 | nr_of_irqs += bank->nr_irqs; | 171 | nr_of_irqs += bank->nr_irqs; |
172 | nr_banks++; | 172 | nr_banks++; |
diff --git a/arch/arm/mach-omap2/usb-musb.c b/arch/arm/mach-omap2/usb-musb.c index a65145b02a55..19e4dac62a8c 100644 --- a/arch/arm/mach-omap2/usb-musb.c +++ b/arch/arm/mach-omap2/usb-musb.c | |||
@@ -137,9 +137,6 @@ void __init usb_musb_init(struct omap_musb_board_data *musb_board_data) | |||
137 | musb_plat.mode = board_data->mode; | 137 | musb_plat.mode = board_data->mode; |
138 | musb_plat.extvbus = board_data->extvbus; | 138 | musb_plat.extvbus = board_data->extvbus; |
139 | 139 | ||
140 | if (cpu_is_omap44xx()) | ||
141 | omap4430_phy_init(dev); | ||
142 | |||
143 | if (cpu_is_omap3517() || cpu_is_omap3505()) { | 140 | if (cpu_is_omap3517() || cpu_is_omap3505()) { |
144 | oh_name = "am35x_otg_hs"; | 141 | oh_name = "am35x_otg_hs"; |
145 | name = "musb-am35x"; | 142 | name = "musb-am35x"; |
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 2d6423c2d193..166d149d931e 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig | |||
@@ -63,7 +63,7 @@ config AD525X_DPOT_SPI | |||
63 | 63 | ||
64 | config ATMEL_PWM | 64 | config ATMEL_PWM |
65 | tristate "Atmel AT32/AT91 PWM support" | 65 | tristate "Atmel AT32/AT91 PWM support" |
66 | depends on AVR32 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9 | 66 | depends on HAVE_CLK |
67 | help | 67 | help |
68 | This option enables device driver support for the PWM channels | 68 | This option enables device driver support for the PWM channels |
69 | on certain Atmel processors. Pulse Width Modulation is used for | 69 | on certain Atmel processors. Pulse Width Modulation is used for |