aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2025-04-09 12:12:19 -0400
committerKevin O'Connor <kevin@koconnor.net>2025-04-16 13:54:44 -0400
commitb0fa36e221959ad88b005fca856adede82427321 (patch)
treeafe864c7e74c72c21dc1ae86da19ad65b4615975
parent6356e3d35c2d9382a193d186a20890a079578b4c (diff)
downloadkutter-b0fa36e221959ad88b005fca856adede82427321.tar.gz
kutter-b0fa36e221959ad88b005fca856adede82427321.tar.xz
kutter-b0fa36e221959ad88b005fca856adede82427321.zip
Kconfig: Add new WANT_HARD_PWM option to reduce code size
Make it possible to not compile in support for hardware pwm on chips with small flash sizes. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--src/Kconfig7
-rw-r--r--src/Makefile2
-rw-r--r--src/atsamd/Makefile2
-rw-r--r--src/avr/Makefile2
-rw-r--r--src/hc32f460/Makefile2
-rw-r--r--src/lpc176x/Makefile2
-rw-r--r--src/rp2040/Makefile2
-rw-r--r--src/stm32/Makefile2
8 files changed, 14 insertions, 7 deletions
diff --git a/src/Kconfig b/src/Kconfig
index a5cb3b06..f371ef91 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -88,6 +88,10 @@ config USB_SERIAL_NUMBER
endmenu
# Optional features that can be disabled (for devices with small flash sizes)
+config WANT_HARD_PWM
+ bool
+ depends on HAVE_GPIO_HARD_PWM
+ default y
config WANT_BUTTONS
bool
depends on HAVE_GPIO
@@ -163,6 +167,9 @@ config NEED_SENSOR_BULK
default y
menu "Optional features (to reduce code size)"
depends on HAVE_LIMITED_CODE_SIZE
+config WANT_HARD_PWM
+ bool "Support hardware PWM (pulse width modulation)"
+ depends on HAVE_GPIO_HARD_PWM
config WANT_BUTTONS
bool "Support GPIO based button reading"
depends on HAVE_GPIO
diff --git a/src/Makefile b/src/Makefile
index 7ff99193..04be1f9d 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -7,7 +7,7 @@ src-$(CONFIG_HAVE_GPIO_ADC) += adccmds.c
src-$(CONFIG_HAVE_GPIO_SPI) += spicmds.c
src-$(CONFIG_HAVE_GPIO_SDIO) += sdiocmds.c
src-$(CONFIG_HAVE_GPIO_I2C) += i2ccmds.c
-src-$(CONFIG_HAVE_GPIO_HARD_PWM) += pwmcmds.c
+src-$(CONFIG_WANT_HARD_PWM) += pwmcmds.c
src-$(CONFIG_WANT_BUTTONS) += buttons.c
src-$(CONFIG_WANT_TMCUART) += tmcuart.c
diff --git a/src/atsamd/Makefile b/src/atsamd/Makefile
index 8b9722b6..477d847e 100644
--- a/src/atsamd/Makefile
+++ b/src/atsamd/Makefile
@@ -31,7 +31,7 @@ src-$(CONFIG_HAVE_GPIO_ADC) += atsamd/adc.c
src-$(CONFIG_HAVE_GPIO_I2C) += atsamd/i2c.c
src-$(CONFIG_HAVE_GPIO_SPI) += atsamd/spi.c
src-$(CONFIG_HAVE_SERCOM) += atsamd/sercom.c
-src-$(CONFIG_HAVE_GPIO_HARD_PWM) += atsamd/hard_pwm.c
+src-$(CONFIG_WANT_HARD_PWM) += atsamd/hard_pwm.c
src-$(CONFIG_MACH_SAMC21) += atsamd/samd51_watchdog.c
src-$(CONFIG_MACH_SAMC21) += atsamd/samc21_clock.c atsamd/timer.c generic/timer_irq.c
src-$(CONFIG_MACH_SAMD21) += atsamd/watchdog.c
diff --git a/src/avr/Makefile b/src/avr/Makefile
index db6d5461..699b70ff 100644
--- a/src/avr/Makefile
+++ b/src/avr/Makefile
@@ -14,7 +14,7 @@ src-$(CONFIG_HAVE_GPIO) += avr/gpio.c
src-$(CONFIG_HAVE_GPIO_ADC) += avr/adc.c
src-$(CONFIG_HAVE_GPIO_SPI) += avr/spi.c
src-$(CONFIG_HAVE_GPIO_I2C) += avr/i2c.c
-src-$(CONFIG_HAVE_GPIO_HARD_PWM) += avr/hard_pwm.c
+src-$(CONFIG_WANT_HARD_PWM) += avr/hard_pwm.c
src-$(CONFIG_AVR_WATCHDOG) += avr/watchdog.c
src-$(CONFIG_USBSERIAL) += avr/usbserial.c generic/usb_cdc.c
src-$(CONFIG_SERIAL) += avr/serial.c generic/serial_irq.c
diff --git a/src/hc32f460/Makefile b/src/hc32f460/Makefile
index 85d2fa19..87973074 100644
--- a/src/hc32f460/Makefile
+++ b/src/hc32f460/Makefile
@@ -24,7 +24,7 @@ src-y += ../lib/hc32f460/driver/src/hc32f460_gpio.c
src-y += ../lib/hc32f460/driver/src/hc32f460_pwc.c
src-$(CONFIG_HAVE_GPIO_ADC) += hc32f460/adc.c ../lib/hc32f460/driver/src/hc32f460_adc.c
src-$(CONFIG_SERIAL) += hc32f460/serial.c generic/serial_irq.c ../lib/hc32f460/driver/src/hc32f460_usart.c
-src-$(CONFIG_HAVE_GPIO_HARD_PWM) += hc32f460/hard_pwm.c ../lib/hc32f460/driver/src/hc32f460_timera.c
+src-$(CONFIG_WANT_HARD_PWM) += hc32f460/hard_pwm.c ../lib/hc32f460/driver/src/hc32f460_timera.c
src-y += generic/armcm_boot.c generic/armcm_irq.c generic/armcm_timer.c
src-y += generic/armcm_reset.c generic/crc16_ccitt.c
diff --git a/src/lpc176x/Makefile b/src/lpc176x/Makefile
index 6814969c..503629cd 100644
--- a/src/lpc176x/Makefile
+++ b/src/lpc176x/Makefile
@@ -22,7 +22,7 @@ src-$(CONFIG_HAVE_GPIO_SPI) += lpc176x/spi.c
src-$(CONFIG_USBSERIAL) += lpc176x/usbserial.c lpc176x/chipid.c
src-$(CONFIG_USBSERIAL) += generic/usb_cdc.c
src-$(CONFIG_SERIAL) += lpc176x/serial.c generic/serial_irq.c
-src-$(CONFIG_HAVE_GPIO_HARD_PWM) += lpc176x/hard_pwm.c
+src-$(CONFIG_WANT_HARD_PWM) += lpc176x/hard_pwm.c
# Build the additional bin output file
target-y += $(OUT)klipper.bin
diff --git a/src/rp2040/Makefile b/src/rp2040/Makefile
index f7c38dab..3acda535 100644
--- a/src/rp2040/Makefile
+++ b/src/rp2040/Makefile
@@ -28,7 +28,7 @@ src-$(CONFIG_CANSERIAL) += ../lib/fast-hash/fasthash.c
src-$(CONFIG_USBCANBUS) += rp2040/can.c rp2040/chipid.c ../lib/can2040/can2040.c
src-$(CONFIG_USBCANBUS) += generic/canserial.c generic/usb_canbus.c
src-$(CONFIG_USBCANBUS) += ../lib/fast-hash/fasthash.c rp2040/usbserial.c
-src-$(CONFIG_HAVE_GPIO_HARD_PWM) += rp2040/hard_pwm.c
+src-$(CONFIG_WANT_HARD_PWM) += rp2040/hard_pwm.c
src-$(CONFIG_HAVE_GPIO_SPI) += rp2040/spi.c
src-$(CONFIG_HAVE_GPIO_I2C) += rp2040/i2c.c
diff --git a/src/stm32/Makefile b/src/stm32/Makefile
index eaf989af..dc6eeb08 100644
--- a/src/stm32/Makefile
+++ b/src/stm32/Makefile
@@ -93,7 +93,7 @@ canbus-src-$(CONFIG_HAVE_STM32_FDCANBUS) += stm32/fdcan.c
src-$(CONFIG_CANSERIAL) += $(canbus-src-y) generic/canbus.c stm32/chipid.c
src-$(CONFIG_USBCANBUS) += $(usb-src-y) $(canbus-src-y)
src-$(CONFIG_USBCANBUS) += stm32/chipid.c generic/usb_canbus.c
-src-$(CONFIG_HAVE_GPIO_HARD_PWM) += stm32/hard_pwm.c
+src-$(CONFIG_WANT_HARD_PWM) += stm32/hard_pwm.c
# Binary output file rules
target-y += $(OUT)klipper.bin