diff --git a/arch/x86/soc/intel_quark/quark_d2000/Kconfig.defconfig.series b/arch/x86/soc/intel_quark/quark_d2000/Kconfig.defconfig.series index c8d044cef29..a8c7de72f34 100644 --- a/arch/x86/soc/intel_quark/quark_d2000/Kconfig.defconfig.series +++ b/arch/x86/soc/intel_quark/quark_d2000/Kconfig.defconfig.series @@ -52,6 +52,11 @@ config QMSI config QMSI_BUILTIN def_bool y +if PINMUX +config PINMUX_QMSI + def_bool y +endif + if UART_QMSI config UART_QMSI_0 def_bool y diff --git a/arch/x86/soc/intel_quark/quark_se/Kconfig.defconfig.series b/arch/x86/soc/intel_quark/quark_se/Kconfig.defconfig.series index 12c1b773693..fcabdef7176 100644 --- a/arch/x86/soc/intel_quark/quark_se/Kconfig.defconfig.series +++ b/arch/x86/soc/intel_quark/quark_se/Kconfig.defconfig.series @@ -48,6 +48,11 @@ config PWM_QMSI def_bool y endif +if PINMUX +config PINMUX_QMSI + def_bool y +endif + if GPIO config GPIO_QMSI def_bool y diff --git a/drivers/pinmux/Kconfig b/drivers/pinmux/Kconfig index 0897e33e2f1..3e5769dadf8 100644 --- a/drivers/pinmux/Kconfig +++ b/drivers/pinmux/Kconfig @@ -39,6 +39,13 @@ config PINMUX_INIT_PRIORITY rule for particular boards. Don't change this value unless you know what you are doing. +config PINMUX_QMSI + bool "Enable QMSI pinmux dev driver" + depends on PINMUX && QMSI + default n + help + Enables the pinmux dev driver for QMSI supported boards. + source "drivers/pinmux/Kconfig.mcux" source "drivers/pinmux/Kconfig.stm32" diff --git a/drivers/pinmux/Makefile b/drivers/pinmux/Makefile index eba1b960c17..6a5560c8fcc 100644 --- a/drivers/pinmux/Makefile +++ b/drivers/pinmux/Makefile @@ -1,5 +1,7 @@ ccflags-y +=-I$(srctree)/drivers +ccflags-$(CONFIG_PINMUX_QMSI) += -I$(CONFIG_QMSI_INSTALL_PATH)/include + # Board initialization obj-$(CONFIG_PINMUX_MCUX) += pinmux_mcux.o obj-$(CONFIG_PINMUX_STM32) += stm32/pinmux_stm32.o @@ -14,6 +16,7 @@ obj-$(CONFIG_BOARD_96B_CARBON) += stm32/pinmux_board_carbon.o obj-$(CONFIG_BOARD_NUCLEO_L476RG) += stm32/pinmux_board_nucleo_l476rg.o obj-$(CONFIG_BOARD_OLIMEXINO_STM32) += stm32/pinmux_board_olimexino_stm32.o obj-$(CONFIG_BOARD_STM32_MINI_A15) += stm32/pinmux_board_stm32_mini_a15.o +obj-$(CONFIG_PINMUX_QMSI) += pinmux_qmsi.o # "runtime" pinmux obj-$(CONFIG_PINMUX_DEV) += dev/ diff --git a/drivers/pinmux/dev/Kconfig b/drivers/pinmux/dev/Kconfig index d2448f8fe13..64a17564a51 100644 --- a/drivers/pinmux/dev/Kconfig +++ b/drivers/pinmux/dev/Kconfig @@ -44,13 +44,6 @@ config PINMUX_DEV_GALILEO Enables the pinmux dev driver for the Galileo board. default n -config PINMUX_DEV_QMSI - bool "Enable QMSI pinmux dev driver" - depends on PINMUX_DEV && QMSI - help - Enables the pinmux dev driver for QMSI supported boards. - default n - config PINMUX_DEV_STM32 bool "Enable pinmux dev driver for the ST STM32 family." depends on PINMUX_DEV && SOC_FAMILY_STM32 diff --git a/drivers/pinmux/dev/Makefile b/drivers/pinmux/dev/Makefile index a90933cdc25..4f9d1f1c8ec 100644 --- a/drivers/pinmux/dev/Makefile +++ b/drivers/pinmux/dev/Makefile @@ -1,9 +1,7 @@ ccflags-$(CONFIG_PINMUX_DEV) +=-I$(srctree)/drivers ccflags-$(CONFIG_PINMUX_DEV_K64) +=-I$(srctree)/drivers/pinmux/k64/ -ccflags-$(CONFIG_PINMUX_DEV_QMSI) += -I$(CONFIG_QMSI_INSTALL_PATH)/include obj-$(CONFIG_PINMUX_DEV_ATMEL_SAM3X) += pinmux_dev_atmel_sam3x.o obj-$(CONFIG_PINMUX_DEV_K64) += pinmux_dev_k64.o -obj-$(CONFIG_PINMUX_DEV_QMSI) += pinmux_dev_qmsi.o obj-$(CONFIG_PINMUX_DEV_STM32) += pinmux_dev_stm32.o obj-$(CONFIG_PINMUX_DEV_ARM_V2M_BEETLE) += pinmux_dev_arm_beetle.o diff --git a/drivers/pinmux/dev/pinmux_dev_qmsi.c b/drivers/pinmux/pinmux_qmsi.c similarity index 71% rename from drivers/pinmux/dev/pinmux_dev_qmsi.c rename to drivers/pinmux/pinmux_qmsi.c index fd9fcdb0cb7..19f3fb88b3f 100644 --- a/drivers/pinmux/dev/pinmux_dev_qmsi.c +++ b/drivers/pinmux/pinmux_qmsi.c @@ -1,4 +1,4 @@ -/* pinmux_dev_qmsi.c - QMSI pinmux dev driver */ +/* pinmux_qmsi.c - QMSI pinmux dev driver */ /* * Copyright (c) 2016 Intel Corporation @@ -13,7 +13,7 @@ #define MASK_2_BITS 0x3 -static int pinmux_dev_set(struct device *dev, uint32_t pin, +static int pinmux_set(struct device *dev, uint32_t pin, uint32_t func) { ARG_UNUSED(dev); @@ -21,7 +21,7 @@ static int pinmux_dev_set(struct device *dev, uint32_t pin, return qm_pmux_select(pin, func) == 0 ? 0 : -EIO; } -static int pinmux_dev_get(struct device *dev, uint32_t pin, +static int pinmux_get(struct device *dev, uint32_t pin, uint32_t *func) { ARG_UNUSED(dev); @@ -55,7 +55,7 @@ static int pinmux_dev_get(struct device *dev, uint32_t pin, return 0; } -static int pinmux_dev_pullup(struct device *dev, uint32_t pin, +static int pinmux_pullup(struct device *dev, uint32_t pin, uint8_t func) { ARG_UNUSED(dev); @@ -63,7 +63,7 @@ static int pinmux_dev_pullup(struct device *dev, uint32_t pin, return qm_pmux_pullup_en(pin, func) == 0 ? 0 : -EIO; } -static int pinmux_dev_input(struct device *dev, uint32_t pin, +static int pinmux_input(struct device *dev, uint32_t pin, uint8_t func) { ARG_UNUSED(dev); @@ -72,18 +72,18 @@ static int pinmux_dev_input(struct device *dev, uint32_t pin, } static struct pinmux_driver_api api_funcs = { - .set = pinmux_dev_set, - .get = pinmux_dev_get, - .pullup = pinmux_dev_pullup, - .input = pinmux_dev_input + .set = pinmux_set, + .get = pinmux_get, + .pullup = pinmux_pullup, + .input = pinmux_input }; -static int pinmux_dev_initialize(struct device *port) +static int pinmux_initialize(struct device *port) { return 0; } -DEVICE_AND_API_INIT(pmux_dev, CONFIG_PINMUX_DEV_NAME, - &pinmux_dev_initialize, NULL, NULL, +DEVICE_AND_API_INIT(pmux_dev, CONFIG_PINMUX_NAME, + &pinmux_initialize, NULL, NULL, POST_KERNEL, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &api_funcs); diff --git a/ext/hal/qmsi/Kbuild b/ext/hal/qmsi/Kbuild index abab9c7438f..b665e7484cd 100644 --- a/ext/hal/qmsi/Kbuild +++ b/ext/hal/qmsi/Kbuild @@ -21,7 +21,7 @@ obj-$(CONFIG_UART_QMSI) += drivers/uart/qm_uart.o obj-$(CONFIG_DMA_QMSI) += drivers/dma/qm_dma.o obj-$(CONFIG_SPI_QMSI) += drivers/spi/qm_spi.o obj-$(CONFIG_SOC_FLASH_QMSI) += drivers/flash/qm_flash.o -obj-$(CONFIG_PINMUX_DEV_QMSI) += drivers/pinmux/qm_pinmux.o +obj-$(CONFIG_PINMUX_QMSI) += drivers/pinmux/qm_pinmux.o obj-$(CONFIG_SPI_QMSI_SS) += drivers/spi/qm_ss_spi.o obj-$(CONFIG_GPIO_QMSI_SS) += drivers/gpio/qm_ss_gpio.o obj-$(CONFIG_I2C_QMSI_SS) += drivers/i2c/qm_ss_i2c.o diff --git a/tests/drivers/pinmux/prj_arduino_101.conf b/tests/drivers/pinmux/prj_arduino_101.conf deleted file mode 100644 index 8362387a79a..00000000000 --- a/tests/drivers/pinmux/prj_arduino_101.conf +++ /dev/null @@ -1 +0,0 @@ -CONFIG_PINMUX_DEV=y diff --git a/tests/drivers/pinmux/prj_quark_d2000_crb.conf b/tests/drivers/pinmux/prj_quark_d2000_crb.conf deleted file mode 100644 index 8362387a79a..00000000000 --- a/tests/drivers/pinmux/prj_quark_d2000_crb.conf +++ /dev/null @@ -1 +0,0 @@ -CONFIG_PINMUX_DEV=y diff --git a/tests/drivers/pinmux/prj_quark_se_c1000_devboard.conf b/tests/drivers/pinmux/prj_quark_se_c1000_devboard.conf deleted file mode 100644 index 8362387a79a..00000000000 --- a/tests/drivers/pinmux/prj_quark_se_c1000_devboard.conf +++ /dev/null @@ -1 +0,0 @@ -CONFIG_PINMUX_DEV=y diff --git a/tests/drivers/pinmux/testcase.ini b/tests/drivers/pinmux/testcase.ini index c47c68cfeae..eacbae9562c 100644 --- a/tests/drivers/pinmux/testcase.ini +++ b/tests/drivers/pinmux/testcase.ini @@ -1,4 +1,4 @@ [test_pinmux_dev] build_only = true tags = drivers -platform_whitelist = quark_se_c1000_devboard arduino_101 arduino_due galileo nucleo_f103rb stm32_mini_a15 olimexino_stm32 quark_d2000_crb +platform_whitelist = arduino_due galileo nucleo_f103rb stm32_mini_a15 olimexino_stm32