summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--builddefs/common_features.mk12
-rw-r--r--drivers/backlight/backlight_software.c (renamed from quantum/backlight/backlight_software.c)2
-rw-r--r--keyboards/4pplet/eagle_viper_rep/rev_a/config.h1
-rw-r--r--keyboards/acheron/athena/alpha/alpha.c2
-rw-r--r--keyboards/acheron/athena/alpha/config.h1
-rw-r--r--keyboards/acheron/athena/beta/config.h2
-rw-r--r--keyboards/acheron/shark/alpha/config.h1
-rw-r--r--keyboards/acheron/shark/beta/config.h1
-rw-r--r--keyboards/checkerboards/nop60/config.h2
-rw-r--r--keyboards/ebastler/e80_1800/config.h2
-rw-r--r--keyboards/ebastler/isometria_75/rev1/config.h1
-rw-r--r--keyboards/geonworks/frogmini/fms/config.h1
-rw-r--r--keyboards/handwired/onekey/blackpill_f401/config.h1
-rwxr-xr-xkeyboards/handwired/onekey/blackpill_f401_tinyuf2/config.h1
-rw-r--r--keyboards/handwired/onekey/blackpill_f411/config.h1
-rwxr-xr-xkeyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h1
-rw-r--r--keyboards/handwired/onekey/evb_wb32f3g71/config.h5
-rw-r--r--keyboards/handwired/onekey/evb_wb32fq95/config.h5
-rw-r--r--keyboards/handwired/onekey/nucleo_f446re/config.h5
-rw-r--r--keyboards/handwired/onekey/nucleo_l432kc/config.h5
-rw-r--r--keyboards/handwired/onekey/proton_c/config.h5
-rw-r--r--keyboards/handwired/onekey/rp2040/config.h1
-rw-r--r--keyboards/handwired/onekey/stm32f0_disco/config.h2
-rw-r--r--keyboards/handwired/pill60/config.h19
-rw-r--r--keyboards/linworks/fave104/config.h1
-rw-r--r--keyboards/linworks/whale75/config.h1
-rw-r--r--keyboards/mechlovin/adelais/standard_led/arm/config.h1
-rw-r--r--keyboards/mechlovin/hannah65/config.h21
-rw-r--r--keyboards/mechlovin/hex4b/rev2/config.h20
-rw-r--r--keyboards/mechlovin/hex6c/config.h1
-rw-r--r--keyboards/mechlovin/infinity87/rev1/config.h1
-rw-r--r--keyboards/mechlovin/infinity88/config.h1
-rw-r--r--keyboards/mechlovin/mechlovin9/rev1/config.h21
-rw-r--r--keyboards/mechlovin/tmkl/config.h3
-rw-r--r--keyboards/mode/m75s/config.h1
-rw-r--r--keyboards/smithrune/iron165r2/f411/config.h1
-rw-r--r--platforms/avr/drivers/backlight_pwm.c (renamed from quantum/backlight/backlight_avr.c)16
-rw-r--r--platforms/chibios/drivers/backlight_pwm.c (renamed from quantum/backlight/backlight_chibios.c)6
-rw-r--r--platforms/chibios/drivers/backlight_timer.c (renamed from quantum/backlight/backlight_timer.c)3
-rw-r--r--quantum/backlight/backlight.c1
-rw-r--r--quantum/backlight/backlight_driver_common.c3
41 files changed, 17 insertions, 164 deletions
diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index e904d6beb9..5687201d61 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -565,18 +565,18 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
     endif
 
     COMMON_VPATH += $(QUANTUM_DIR)/backlight
+    COMMON_VPATH += $(DRIVER_PATH)/backlight
     SRC += $(QUANTUM_DIR)/backlight/backlight.c
     SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
     OPT_DEFS += -DBACKLIGHT_ENABLE
 
-    ifeq ($(strip $(BACKLIGHT_DRIVER)), custom)
-        OPT_DEFS += -DBACKLIGHT_CUSTOM_DRIVER
-    else
+    ifneq ($(strip $(BACKLIGHT_DRIVER)), custom)
         SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c
-        ifeq ($(strip $(BACKLIGHT_DRIVER)), pwm)
-            SRC += $(QUANTUM_DIR)/backlight/backlight_$(PLATFORM_KEY).c
+
+        ifeq ($(strip $(BACKLIGHT_DRIVER)), software)
+            SRC += $(DRIVER_PATH)/backlight/backlight_software.c
         else
-            SRC += $(QUANTUM_DIR)/backlight/backlight_$(strip $(BACKLIGHT_DRIVER)).c
+            SRC += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/backlight_$(strip $(BACKLIGHT_DRIVER)).c
         endif
     endif
 endif
diff --git a/quantum/backlight/backlight_software.c b/drivers/backlight/backlight_software.c
index 27ccbd2c9f..f2af3e918e 100644
--- a/quantum/backlight/backlight_software.c
+++ b/drivers/backlight/backlight_software.c
@@ -1,6 +1,6 @@
-#include "quantum.h"
 #include "backlight.h"
 #include "backlight_driver_common.h"
+#include "util.h"
 
 #ifdef BACKLIGHT_BREATHING
 #    error "Backlight breathing is not available for software PWM. Please disable."
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/config.h b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h
index ddd59434a4..1cc2d50f16 100644
--- a/keyboards/4pplet/eagle_viper_rep/rev_a/config.h
+++ b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h
@@ -18,7 +18,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #define BACKLIGHT_PWM_DRIVER    PWMD2
 #define BACKLIGHT_PWM_CHANNEL   4
-#define BACKLIGHT_PAL_MODE      2
 
 /* Underglow */
 #define WS2812_SPI  SPID1
diff --git a/keyboards/acheron/athena/alpha/alpha.c b/keyboards/acheron/athena/alpha/alpha.c
index 5b5c45b7c7..9e4f82f7ad 100644
--- a/keyboards/acheron/athena/alpha/alpha.c
+++ b/keyboards/acheron/athena/alpha/alpha.c
@@ -23,7 +23,7 @@ void board_init(void) {
 
 void keyboard_post_init_kb(void){
  // Defining the backlight pin (A6) as an floating (no pullup or pulldown resistor) opendrain output pin
-    palSetLineMode(BACKLIGHT_PIN, PAL_MODE_ALTERNATE(BACKLIGHT_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING);
+    palSetLineMode(BACKLIGHT_PIN, PAL_MODE_ALTERNATE(2) | PAL_STM32_OTYPE_OPENDRAIN | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUPDR_FLOATING);
 }
 
 void led_init_ports(void) {
diff --git a/keyboards/acheron/athena/alpha/config.h b/keyboards/acheron/athena/alpha/config.h
index 1bb03e3783..0466710e71 100644
--- a/keyboards/acheron/athena/alpha/config.h
+++ b/keyboards/acheron/athena/alpha/config.h
@@ -22,7 +22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #define BACKLIGHT_PWM_DRIVER    PWMD3
 #define BACKLIGHT_PWM_CHANNEL   1
-#define BACKLIGHT_PAL_MODE      2
 
 #define RGBLIGHT_EFFECT_BREATHING
 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
diff --git a/keyboards/acheron/athena/beta/config.h b/keyboards/acheron/athena/beta/config.h
index 77985b2ae5..618cebef0c 100644
--- a/keyboards/acheron/athena/beta/config.h
+++ b/keyboards/acheron/athena/beta/config.h
@@ -21,8 +21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define LOCKING_RESYNC_ENABLE
 
 #define BACKLIGHT_PWM_DRIVER    PWMD3
-#define BACKLIGHT_PWM_CHANNEL   3
-#define BACKLIGHT_PAL_MODE      2
 
 #define RGBLIGHT_EFFECT_BREATHING
 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
diff --git a/keyboards/acheron/shark/alpha/config.h b/keyboards/acheron/shark/alpha/config.h
index 91f51146f0..a34ea41cff 100644
--- a/keyboards/acheron/shark/alpha/config.h
+++ b/keyboards/acheron/shark/alpha/config.h
@@ -18,7 +18,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #pragma once
 
 #define BACKLIGHT_PWM_DRIVER PWMD3
-#define BACKLIGHT_PWM_CHANNEL 3
 
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/acheron/shark/beta/config.h b/keyboards/acheron/shark/beta/config.h
index 25ad6b3bf0..d4616132e3 100644
--- a/keyboards/acheron/shark/beta/config.h
+++ b/keyboards/acheron/shark/beta/config.h
@@ -22,7 +22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #define BACKLIGHT_PWM_DRIVER    PWMD3
 #define BACKLIGHT_PWM_CHANNEL   1
-#define BACKLIGHT_PAL_MODE      2
 
 #define RGBLIGHT_EFFECT_BREATHING
 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
diff --git a/keyboards/checkerboards/nop60/config.h b/keyboards/checkerboards/nop60/config.h
index cf5b1ff906..5cb854aebc 100644
--- a/keyboards/checkerboards/nop60/config.h
+++ b/keyboards/checkerboards/nop60/config.h
@@ -17,8 +17,6 @@ Copyright 2021 Nathan Spears
 
 #pragma once
 
-#define BACKLIGHT_PWM_DRIVER    PWMD3
-
 // ws2812 options
 #define RGBLIGHT_EFFECT_BREATHING
 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
diff --git a/keyboards/ebastler/e80_1800/config.h b/keyboards/ebastler/e80_1800/config.h
index b0726f908a..baa7073176 100644
--- a/keyboards/ebastler/e80_1800/config.h
+++ b/keyboards/ebastler/e80_1800/config.h
@@ -16,8 +16,6 @@
 
 #define BACKLIGHT_PWM_DRIVER PWMD1
 #define BACKLIGHT_PWM_CHANNEL 2
-#define BACKLIGHT_PAL_MODE 2
-
 
 #ifdef OLED_ENABLE
 
diff --git a/keyboards/ebastler/isometria_75/rev1/config.h b/keyboards/ebastler/isometria_75/rev1/config.h
index 29a2ac527d..18f4f1f4d6 100644
--- a/keyboards/ebastler/isometria_75/rev1/config.h
+++ b/keyboards/ebastler/isometria_75/rev1/config.h
@@ -20,7 +20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* Backlight */
 #define BACKLIGHT_PWM_DRIVER PWMD1
 #define BACKLIGHT_PWM_CHANNEL 2
-#define BACKLIGHT_PAL_MODE 2
 #define BACKLIGHT_PWM_OUTPUT_FREQUENCY 1000 // Increases backlight PWM freq if compiled with an unmerged PR. Does no harm without it.
 
 /* Underglow */
diff --git a/keyboards/geonworks/frogmini/fms/config.h b/keyboards/geonworks/frogmini/fms/config.h
index 6576ee9efe..ddeaa2abff 100644
--- a/keyboards/geonworks/frogmini/fms/config.h
+++ b/keyboards/geonworks/frogmini/fms/config.h
@@ -18,7 +18,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #pragma once
 
 #define BACKLIGHT_PWM_DRIVER    PWMD1
-#define BACKLIGHT_PWM_CHANNEL   3
 #define BACKLIGHT_PAL_MODE      1
 
 #define I2C_DRIVER I2CD1
diff --git a/keyboards/handwired/onekey/blackpill_f401/config.h b/keyboards/handwired/onekey/blackpill_f401/config.h
index 6183ee9819..22143dfac5 100644
--- a/keyboards/handwired/onekey/blackpill_f401/config.h
+++ b/keyboards/handwired/onekey/blackpill_f401/config.h
@@ -19,7 +19,6 @@
 
 #define BACKLIGHT_PWM_DRIVER  PWMD5
 #define BACKLIGHT_PWM_CHANNEL 1
-#define BACKLIGHT_PAL_MODE 2
 
 #define ADC_PIN A0
 
diff --git a/keyboards/handwired/onekey/blackpill_f401_tinyuf2/config.h b/keyboards/handwired/onekey/blackpill_f401_tinyuf2/config.h
index 6183ee9819..22143dfac5 100755
--- a/keyboards/handwired/onekey/blackpill_f401_tinyuf2/config.h
+++ b/keyboards/handwired/onekey/blackpill_f401_tinyuf2/config.h
@@ -19,7 +19,6 @@
 
 #define BACKLIGHT_PWM_DRIVER  PWMD5
 #define BACKLIGHT_PWM_CHANNEL 1
-#define BACKLIGHT_PAL_MODE 2
 
 #define ADC_PIN A0
 
diff --git a/keyboards/handwired/onekey/blackpill_f411/config.h b/keyboards/handwired/onekey/blackpill_f411/config.h
index 6183ee9819..22143dfac5 100644
--- a/keyboards/handwired/onekey/blackpill_f411/config.h
+++ b/keyboards/handwired/onekey/blackpill_f411/config.h
@@ -19,7 +19,6 @@
 
 #define BACKLIGHT_PWM_DRIVER  PWMD5
 #define BACKLIGHT_PWM_CHANNEL 1
-#define BACKLIGHT_PAL_MODE 2
 
 #define ADC_PIN A0
 
diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h
index 6183ee9819..22143dfac5 100755
--- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h
+++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h
@@ -19,7 +19,6 @@
 
 #define BACKLIGHT_PWM_DRIVER  PWMD5
 #define BACKLIGHT_PWM_CHANNEL 1
-#define BACKLIGHT_PAL_MODE 2
 
 #define ADC_PIN A0
 
diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/config.h b/keyboards/handwired/onekey/evb_wb32f3g71/config.h
index 4a65e9a72f..5f6f04f7b4 100644
--- a/keyboards/handwired/onekey/evb_wb32f3g71/config.h
+++ b/keyboards/handwired/onekey/evb_wb32f3g71/config.h
@@ -3,13 +3,8 @@
 
 #pragma once
 
-
 #define ADC_PIN A0
 
-#define BACKLIGHT_PWM_DRIVER  PWMD4
-#define BACKLIGHT_PWM_CHANNEL 3
-#define BACKLIGHT_PAL_MODE    2
-
 #define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4)))
 
 #define SOLENOID_PIN B12
diff --git a/keyboards/handwired/onekey/evb_wb32fq95/config.h b/keyboards/handwired/onekey/evb_wb32fq95/config.h
index 4a65e9a72f..5f6f04f7b4 100644
--- a/keyboards/handwired/onekey/evb_wb32fq95/config.h
+++ b/keyboards/handwired/onekey/evb_wb32fq95/config.h
@@ -3,13 +3,8 @@
 
 #pragma once
 
-
 #define ADC_PIN A0
 
-#define BACKLIGHT_PWM_DRIVER  PWMD4
-#define BACKLIGHT_PWM_CHANNEL 3
-#define BACKLIGHT_PAL_MODE    2
-
 #define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4)))
 
 #define SOLENOID_PIN B12
diff --git a/keyboards/handwired/onekey/nucleo_f446re/config.h b/keyboards/handwired/onekey/nucleo_f446re/config.h
index c6c04ed615..4401623e85 100644
--- a/keyboards/handwired/onekey/nucleo_f446re/config.h
+++ b/keyboards/handwired/onekey/nucleo_f446re/config.h
@@ -2,11 +2,6 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 #pragma once
 
-
-#define BACKLIGHT_PWM_DRIVER  PWMD4
-#define BACKLIGHT_PWM_CHANNEL 3
-#define BACKLIGHT_PAL_MODE    2
-
 #define ADC_PIN A0
 
 #define SOLENOID_PINS { B12, B13, B14, B15 }
diff --git a/keyboards/handwired/onekey/nucleo_l432kc/config.h b/keyboards/handwired/onekey/nucleo_l432kc/config.h
index d344a11094..03e017892c 100644
--- a/keyboards/handwired/onekey/nucleo_l432kc/config.h
+++ b/keyboards/handwired/onekey/nucleo_l432kc/config.h
@@ -2,9 +2,4 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 #pragma once
 
-
-#define BACKLIGHT_PWM_DRIVER  PWMD4
-#define BACKLIGHT_PWM_CHANNEL 3
-#define BACKLIGHT_PAL_MODE    2
-
 #define ADC_PIN A0
diff --git a/keyboards/handwired/onekey/proton_c/config.h b/keyboards/handwired/onekey/proton_c/config.h
index 49376e474e..07ce929221 100644
--- a/keyboards/handwired/onekey/proton_c/config.h
+++ b/keyboards/handwired/onekey/proton_c/config.h
@@ -16,9 +16,4 @@
 
 #pragma once
 
-
-#define BACKLIGHT_PWM_DRIVER  PWMD4
-#define BACKLIGHT_PWM_CHANNEL 3
-#define BACKLIGHT_PAL_MODE    2
-
 #define ADC_PIN A0
diff --git a/keyboards/handwired/onekey/rp2040/config.h b/keyboards/handwired/onekey/rp2040/config.h
index 5cbfb8dbff..0563ebfa5f 100644
--- a/keyboards/handwired/onekey/rp2040/config.h
+++ b/keyboards/handwired/onekey/rp2040/config.h
@@ -13,7 +13,6 @@
 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25
 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
 
-#define BACKLIGHT_PWM_DRIVER PWMD4
 #define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B
 
 #define AUDIO_PIN GP16
diff --git a/keyboards/handwired/onekey/stm32f0_disco/config.h b/keyboards/handwired/onekey/stm32f0_disco/config.h
index 806eb69df4..b8880f6581 100644
--- a/keyboards/handwired/onekey/stm32f0_disco/config.h
+++ b/keyboards/handwired/onekey/stm32f0_disco/config.h
@@ -16,9 +16,7 @@
 
 #pragma once
 
-
 #define BACKLIGHT_PWM_DRIVER  PWMD3
-#define BACKLIGHT_PWM_CHANNEL 3
 #define BACKLIGHT_PAL_MODE    0
 
 #define ADC_PIN A0
diff --git a/keyboards/handwired/pill60/config.h b/keyboards/handwired/pill60/config.h
deleted file mode 100644
index 399d0f2212..0000000000
--- a/keyboards/handwired/pill60/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
- /* Copyright 2020 Imam Rafii
-  *
-  * This program is free software: you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License as published by
-  * the Free Software Foundation, either version 2 of the License, or
-  * (at your option) any later version.
-  *
-  * This program is distributed in the hope that it will be useful,
-  * but WITHOUT ANY WARRANTY; without even the implied warranty of
-  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  * GNU General Public License for more details.
-  *
-  * You should have received a copy of the GNU General Public License
-  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
-  */
-#pragma once
-
-#define BACKLIGHT_PWM_DRIVER    PWMD5
-#define BACKLIGHT_PWM_CHANNEL   1
diff --git a/keyboards/linworks/fave104/config.h b/keyboards/linworks/fave104/config.h
index 73e72a129f..41c1a917f3 100644
--- a/keyboards/linworks/fave104/config.h
+++ b/keyboards/linworks/fave104/config.h
@@ -19,5 +19,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #define BACKLIGHT_PWM_DRIVER PWMD2
 #define BACKLIGHT_PWM_CHANNEL 2
-#define BACKLIGHT_PAL_MODE 2
 #define BACKLIGHT_PWM_OUTPUT_FREQUENCY 1000 // Increases backlight PWM freq if compiled with an unmerged PR. Does no harm without it.
diff --git a/keyboards/linworks/whale75/config.h b/keyboards/linworks/whale75/config.h
index d12d33bdfd..3aa16f3eb0 100644
--- a/keyboards/linworks/whale75/config.h
+++ b/keyboards/linworks/whale75/config.h
@@ -15,7 +15,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #pragma once
 
 #define BACKLIGHT_PWM_DRIVER PWMD1
-#define BACKLIGHT_PWM_CHANNEL 3
 #define BACKLIGHT_PAL_MODE 6
 #define BACKLIGHT_PWM_OUTPUT_FREQUENCY 1000 // Increases backlight PWM freq if compiled with an unmerged PR. Does no harm without it.
 
diff --git a/keyboards/mechlovin/adelais/standard_led/arm/config.h b/keyboards/mechlovin/adelais/standard_led/arm/config.h
index d7169c0443..68857621b7 100644
--- a/keyboards/mechlovin/adelais/standard_led/arm/config.h
+++ b/keyboards/mechlovin/adelais/standard_led/arm/config.h
@@ -18,7 +18,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #pragma once
 
 #define BACKLIGHT_PWM_DRIVER PWMD3
-#define BACKLIGHT_PWM_CHANNEL 3
 
 #define RGBLIGHT_EFFECT_BREATHING
 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
diff --git a/keyboards/mechlovin/hannah65/config.h b/keyboards/mechlovin/hannah65/config.h
deleted file mode 100644
index 1686c861fb..0000000000
--- a/keyboards/mechlovin/hannah65/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2020 Team Mechlovin
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define BACKLIGHT_PWM_DRIVER PWMD4
-#define BACKLIGHT_PWM_CHANNEL 3
diff --git a/keyboards/mechlovin/hex4b/rev2/config.h b/keyboards/mechlovin/hex4b/rev2/config.h
deleted file mode 100644
index 14dfffbed3..0000000000
--- a/keyboards/mechlovin/hex4b/rev2/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2020 Team Mechlovin
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define BACKLIGHT_PWM_DRIVER PWMD4
diff --git a/keyboards/mechlovin/hex6c/config.h b/keyboards/mechlovin/hex6c/config.h
index 48bf717581..4cfcaebcde 100644
--- a/keyboards/mechlovin/hex6c/config.h
+++ b/keyboards/mechlovin/hex6c/config.h
@@ -18,7 +18,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #pragma once
 
 #define BACKLIGHT_PWM_DRIVER PWMD3
-#define BACKLIGHT_PWM_CHANNEL 3
 
 #define WEAR_LEVELING_BACKING_SIZE 4096
 #define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/mechlovin/infinity87/rev1/config.h b/keyboards/mechlovin/infinity87/rev1/config.h
index 2265fff2d1..e21e5d019f 100644
--- a/keyboards/mechlovin/infinity87/rev1/config.h
+++ b/keyboards/mechlovin/infinity87/rev1/config.h
@@ -17,4 +17,3 @@
 #pragma once
 
 #define BACKLIGHT_PWM_DRIVER PWMD3
-#define BACKLIGHT_PWM_CHANNEL 3
diff --git a/keyboards/mechlovin/infinity88/config.h b/keyboards/mechlovin/infinity88/config.h
index 9f5eaf5d87..5d7b823cd4 100644
--- a/keyboards/mechlovin/infinity88/config.h
+++ b/keyboards/mechlovin/infinity88/config.h
@@ -18,7 +18,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #pragma once
 
 #define BACKLIGHT_PWM_DRIVER PWMD3
-#define BACKLIGHT_PWM_CHANNEL 3
 
 /*== all animations enable ==*/#define RGBLIGHT_EFFECT_BREATHING
 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
diff --git a/keyboards/mechlovin/mechlovin9/rev1/config.h b/keyboards/mechlovin/mechlovin9/rev1/config.h
deleted file mode 100644
index 3686536dfb..0000000000
--- a/keyboards/mechlovin/mechlovin9/rev1/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2021 Mechlovin' Studio
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define BACKLIGHT_PWM_DRIVER PWMD3
-#define BACKLIGHT_PWM_CHANNEL 3
diff --git a/keyboards/mechlovin/tmkl/config.h b/keyboards/mechlovin/tmkl/config.h
index e604c6bcfa..03e3beacd0 100644
--- a/keyboards/mechlovin/tmkl/config.h
+++ b/keyboards/mechlovin/tmkl/config.h
@@ -17,8 +17,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #pragma once
 
-#define BACKLIGHT_PWM_DRIVER PWMD3
-#define BACKLIGHT_PWM_CHANNEL 3
-
 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 #define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/mode/m75s/config.h b/keyboards/mode/m75s/config.h
index c17bf51b35..7fdb18d26a 100644
--- a/keyboards/mode/m75s/config.h
+++ b/keyboards/mode/m75s/config.h
@@ -20,7 +20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define BACKLIGHT_DEFAULT_LEVEL 20
 #define BACKLIGHT_PWM_DRIVER PWMD3
 #define BACKLIGHT_PWM_CHANNEL 1
-#define BACKLIGHT_PAL_MODE 2
 
 #define WEAR_LEVELING_LOGICAL_SIZE 2048
 #define WEAR_LEVELING_BACKING_SIZE 4096
diff --git a/keyboards/smithrune/iron165r2/f411/config.h b/keyboards/smithrune/iron165r2/f411/config.h
index 5ce500d1e5..1cd8a5c150 100644
--- a/keyboards/smithrune/iron165r2/f411/config.h
+++ b/keyboards/smithrune/iron165r2/f411/config.h
@@ -19,7 +19,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #define BACKLIGHT_PWM_DRIVER    PWMD3
 #define BACKLIGHT_PWM_CHANNEL   1
-#define BACKLIGHT_PAL_MODE      2
 
 #define RGBLIGHT_EFFECT_BREATHING
 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
diff --git a/quantum/backlight/backlight_avr.c b/platforms/avr/drivers/backlight_pwm.c
index 474e0a86f5..d234115641 100644
--- a/quantum/backlight/backlight_avr.c
+++ b/platforms/avr/drivers/backlight_pwm.c
@@ -1,7 +1,8 @@
-#include "quantum.h"
 #include "backlight.h"
 #include "backlight_driver_common.h"
-#include "debug.h"
+#include "progmem.h"
+#include <avr/io.h>
+#include <avr/interrupt.h>
 
 // Maximum duty cycle limit
 #ifndef BACKLIGHT_LIMIT_VAL
@@ -17,7 +18,6 @@
 //   3. Full software PWM, driven by the matrix scan, if both timers are used by Audio.
 
 #if (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) && (BACKLIGHT_PIN == B5 || BACKLIGHT_PIN == B6 || BACKLIGHT_PIN == B7)
-#    define HARDWARE_PWM
 #    define ICRx ICR1
 #    define TCCRxA TCCR1A
 #    define TCCRxB TCCR1B
@@ -39,7 +39,6 @@
 #        define OCRxx OCR1C
 #    endif
 #elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)) && (BACKLIGHT_PIN == C4 || BACKLIGHT_PIN == C5 || BACKLIGHT_PIN == C6)
-#    define HARDWARE_PWM
 #    define ICRx ICR3
 #    define TCCRxA TCCR3A
 #    define TCCRxB TCCR3B
@@ -69,7 +68,6 @@
 #        define OCRxx OCR3A
 #    endif
 #elif (defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__)) && (BACKLIGHT_PIN == B7 || BACKLIGHT_PIN == C5 || BACKLIGHT_PIN == C6)
-#    define HARDWARE_PWM
 #    define ICRx ICR1
 #    define TCCRxA TCCR1A
 #    define TCCRxB TCCR1B
@@ -91,7 +89,6 @@
 #        define OCRxx OCR1A
 #    endif
 #elif defined(__AVR_ATmega32A__) && (BACKLIGHT_PIN == D4 || BACKLIGHT_PIN == D5)
-#    define HARDWARE_PWM
 #    define ICRx ICR1
 #    define TCCRxA TCCR1A
 #    define TCCRxB TCCR1B
@@ -109,7 +106,6 @@
 #        define OCRxx OCR1A
 #    endif
 #elif (defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)) && (BACKLIGHT_PIN == B1 || BACKLIGHT_PIN == B2)
-#    define HARDWARE_PWM
 #    define ICRx ICR1
 #    define TCCRxA TCCR1A
 #    define TCCRxB TCCR1B
@@ -129,7 +125,6 @@
 #elif (AUDIO_PIN != B5) && (AUDIO_PIN != B6) && (AUDIO_PIN != B7) && (AUDIO_PIN_ALT != B5) && (AUDIO_PIN_ALT != B6) && (AUDIO_PIN_ALT != B7)
 // Timer 1 is not in use by Audio feature, Backlight can use it
 #    pragma message "Using hardware timer 1 with software PWM"
-#    define HARDWARE_PWM
 #    define BACKLIGHT_PWM_TIMER
 #    define ICRx ICR1
 #    define TCCRxA TCCR1A
@@ -148,7 +143,6 @@
 #elif (AUDIO_PIN != C4) && (AUDIO_PIN != C5) && (AUDIO_PIN != C6)
 #    pragma message "Using hardware timer 3 with software PWM"
 // Timer 3 is not in use by Audio feature, Backlight can use it
-#    define HARDWARE_PWM
 #    define BACKLIGHT_PWM_TIMER
 #    define ICRx ICR1
 #    define TCCRxA TCCR3A
@@ -160,10 +154,6 @@
 
 #    define OCIExA OCIE3A
 #    define OCRxx OCR3A
-#elif defined(BACKLIGHT_CUSTOM_DRIVER)
-error("Please set 'BACKLIGHT_DRIVER = custom' within rules.mk")
-#else
-error("Please set 'BACKLIGHT_DRIVER = software' within rules.mk")
 #endif
 
 #ifndef BACKLIGHT_PWM_TIMER // pwm through software
diff --git a/quantum/backlight/backlight_chibios.c b/platforms/chibios/drivers/backlight_pwm.c
index 30e95bd5c8..01e6f71307 100644
--- a/quantum/backlight/backlight_chibios.c
+++ b/platforms/chibios/drivers/backlight_pwm.c
@@ -1,7 +1,7 @@
-#include "quantum.h"
 #include "backlight.h"
+#include "gpio.h"
+#include "wait.h"
 #include <hal.h>
-#include "debug.h"
 
 // Maximum duty cycle limit
 #ifndef BACKLIGHT_LIMIT_VAL
@@ -13,7 +13,7 @@
 #        define BACKLIGHT_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL
 #    else
 // GPIOV2 && GPIOV3
-#        define BACKLIGHT_PAL_MODE 5
+#        define BACKLIGHT_PAL_MODE 2
 #    endif
 #endif
 
diff --git a/quantum/backlight/backlight_timer.c b/platforms/chibios/drivers/backlight_timer.c
index 82fb6a6a83..0fabee93b1 100644
--- a/quantum/backlight/backlight_timer.c
+++ b/platforms/chibios/drivers/backlight_timer.c
@@ -1,7 +1,6 @@
-#include "quantum.h"
 #include "backlight.h"
 #include "backlight_driver_common.h"
-#include "debug.h"
+#include "wait.h"
 
 #ifndef BACKLIGHT_GPT_DRIVER
 #    define BACKLIGHT_GPT_DRIVER GPTD15
diff --git a/quantum/backlight/backlight.c b/quantum/backlight/backlight.c
index 52ec086bb0..9d9f944f5d 100644
--- a/quantum/backlight/backlight.c
+++ b/quantum/backlight/backlight.c
@@ -15,7 +15,6 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "quantum.h"
 #include "backlight.h"
 #include "eeprom.h"
 #include "eeconfig.h"
diff --git a/quantum/backlight/backlight_driver_common.c b/quantum/backlight/backlight_driver_common.c
index 1eb8969084..8c3fe461d7 100644
--- a/quantum/backlight/backlight_driver_common.c
+++ b/quantum/backlight/backlight_driver_common.c
@@ -1,6 +1,7 @@
-#include "quantum.h"
 #include "backlight.h"
 #include "backlight_driver_common.h"
+#include "gpio.h"
+#include "util.h"
 
 #if !defined(BACKLIGHT_PIN) && !defined(BACKLIGHT_PINS)
 #    error "Backlight pin/pins not defined. Please configure."