Hardware PWM is supported according to the following table:
-|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|
-|-------------|-------------|-------------|-------------|---------|
-|`B5` |Timer 1 |Timer 1 | | |
-|`B6` |Timer 1 |Timer 1 | | |
-|`B7` |Timer 1 |Timer 1 |Timer 1 | |
-|`C4` |Timer 3 | | | |
-|`C5` |Timer 3 | |Timer 1 | |
-|`C6` |Timer 3 |Timer 3 |Timer 1 | |
-|`D4` | | | |Timer 1 |
-|`D5` | | | |Timer 1 |
+|Backlight Pin|AT90USB64/128|ATmega16/32U4|ATmega16/32U2|ATmega32A|ATmega328P|
+|-------------|-------------|-------------|-------------|---------|----------|
+|`B1` | | | | |Timer 1 |
+|`B2` | | | | |Timer 1 |
+|`B5` |Timer 1 |Timer 1 | | | |
+|`B6` |Timer 1 |Timer 1 | | | |
+|`B7` |Timer 1 |Timer 1 |Timer 1 | | |
+|`C4` |Timer 3 | | | | |
+|`C5` |Timer 3 | |Timer 1 | | |
+|`C6` |Timer 3 |Timer 3 |Timer 1 | | |
+|`D4` | | | |Timer 1 | |
+|`D5` | | | |Timer 1 | |
All other pins will use software PWM. If the [Audio](feature_audio.md) feature is disabled or only using one timer, the backlight PWM can be triggered by a hardware timer:
# define COMxx1 COM1A1
# define OCRxx OCR1A
# endif
+# elif defined(__AVR_ATmega328P__) && (BACKLIGHT_PIN == B1 || BACKLIGHT_PIN == B2)
+# define HARDWARE_PWM
+# define ICRx ICR1
+# define TCCRxA TCCR1A
+# define TCCRxB TCCR1B
+# define TIMERx_OVF_vect TIMER1_OVF_vect
+# define TIMSKx TIMSK1
+# define TOIEx TOIE1
+
+# if BACKLIGHT_PIN == B1
+# define COMxx1 COM1A1
+# define OCRxx OCR1A
+# elif BACKLIGHT_PIN == B2
+# define COMxx1 COM1B1
+# define OCRxx OCR1B
+# endif
# else
# if !defined(BACKLIGHT_CUSTOM_DRIVER)
# if !defined(B5_AUDIO) && !defined(B6_AUDIO) && !defined(B7_AUDIO)