From 90ac25f736c2c4e54306dd96efa962da545f838d Mon Sep 17 00:00:00 2001 From: Maureen Helm Date: Sat, 5 May 2018 14:18:20 -0500 Subject: [PATCH] boards: dts: Add fxos8700 interrupt bindings and fix sensor sample Adds dts bindings for the fxos8700 interrupt pins to all boards that have this sensor. The frdm_k64f and hexiwear_k64 connect both sensor interrupt pins to the mcu, but the frdm_kw41z connects only one. The fxos8700 driver is currently only aware of one sensor interrupt pin, therefore the routing of INT1 or INT2 to the driver is handled in each board's dts.fixup. The fxos8700 sample application has been broken since the refactoring of the mcux gpio driver to dts in commit 4e8f29f3195464616d465f337622c2a1233c77a6. The sample is now fixed. Signed-off-by: Maureen Helm --- boards/arm/frdm_k64f/Kconfig.board | 1 + boards/arm/frdm_k64f/Kconfig.defconfig | 10 ---------- boards/arm/frdm_k64f/dts.fixup | 2 ++ boards/arm/frdm_k64f/frdm_k64f.dts | 2 ++ boards/arm/frdm_kw41z/Kconfig.board | 1 + boards/arm/frdm_kw41z/Kconfig.defconfig | 6 ------ boards/arm/frdm_kw41z/dts.fixup | 2 ++ boards/arm/frdm_kw41z/frdm_kw41z.dts | 1 + boards/arm/hexiwear_k64/Kconfig.board | 1 + boards/arm/hexiwear_k64/Kconfig.defconfig | 10 ---------- boards/arm/hexiwear_k64/dts.fixup | 2 ++ boards/arm/hexiwear_k64/hexiwear_k64.dts | 2 ++ drivers/sensor/fxos8700/Kconfig | 4 ++++ dts/bindings/sensor/nxp,fxos8700.yaml | 9 +++++++++ 14 files changed, 27 insertions(+), 26 deletions(-) diff --git a/boards/arm/frdm_k64f/Kconfig.board b/boards/arm/frdm_k64f/Kconfig.board index 86825b79d53..091a169630c 100644 --- a/boards/arm/frdm_k64f/Kconfig.board +++ b/boards/arm/frdm_k64f/Kconfig.board @@ -3,4 +3,5 @@ config BOARD_FRDM_K64F bool "Freescale FRDM-K64F" depends on SOC_SERIES_KINETIS_K6X select SOC_PART_NUMBER_MK64FN1M0VLL12 + select HAS_DTS_GPIO_DEVICE select HAS_DTS_I2C_DEVICE diff --git a/boards/arm/frdm_k64f/Kconfig.defconfig b/boards/arm/frdm_k64f/Kconfig.defconfig index 124dfa22125..ec06db3125b 100644 --- a/boards/arm/frdm_k64f/Kconfig.defconfig +++ b/boards/arm/frdm_k64f/Kconfig.defconfig @@ -87,16 +87,6 @@ config ADC_1 endif # ADC -if FXOS8700 - -config FXOS8700_GPIO_NAME - default GPIO_MCUX_PORTC_NAME - -config FXOS8700_GPIO_PIN - default 13 - -endif # FXOS8700 - if PWM_MCUX_FTM config PWM_3 diff --git a/boards/arm/frdm_k64f/dts.fixup b/boards/arm/frdm_k64f/dts.fixup index a429cf049ff..9f1a540e2dc 100644 --- a/boards/arm/frdm_k64f/dts.fixup +++ b/boards/arm/frdm_k64f/dts.fixup @@ -1,3 +1,5 @@ #define CONFIG_FXOS8700_NAME NXP_KINETIS_I2C_40066000_NXP_FXOS8700_1D_LABEL #define CONFIG_FXOS8700_I2C_NAME NXP_KINETIS_I2C_40066000_NXP_FXOS8700_1D_BUS_NAME #define CONFIG_FXOS8700_I2C_ADDRESS NXP_KINETIS_I2C_40066000_NXP_FXOS8700_1D_BASE_ADDRESS +#define CONFIG_FXOS8700_GPIO_NAME NXP_KINETIS_I2C_40066000_NXP_FXOS8700_1D_INT2_GPIOS_CONTROLLER +#define CONFIG_FXOS8700_GPIO_PIN NXP_KINETIS_I2C_40066000_NXP_FXOS8700_1D_INT2_GPIOS_PIN diff --git a/boards/arm/frdm_k64f/frdm_k64f.dts b/boards/arm/frdm_k64f/frdm_k64f.dts index 56ff51d56b5..54ec9691eb3 100644 --- a/boards/arm/frdm_k64f/frdm_k64f.dts +++ b/boards/arm/frdm_k64f/frdm_k64f.dts @@ -89,6 +89,8 @@ compatible = "nxp,fxos8700"; reg = <0x1d>; label = "FXOS8700"; + int1-gpios = <&gpioc 6 0>; + int2-gpios = <&gpioc 13 0>; }; }; diff --git a/boards/arm/frdm_kw41z/Kconfig.board b/boards/arm/frdm_kw41z/Kconfig.board index 0336c2891a1..9e6da00d164 100644 --- a/boards/arm/frdm_kw41z/Kconfig.board +++ b/boards/arm/frdm_kw41z/Kconfig.board @@ -9,4 +9,5 @@ config BOARD_FRDM_KW41Z bool "NXP FRDM-KW41Z" depends on SOC_SERIES_KINETIS_KWX select SOC_PART_NUMBER_MKW41Z512VHT4 + select HAS_DTS_GPIO_DEVICE select HAS_DTS_I2C_DEVICE diff --git a/boards/arm/frdm_kw41z/Kconfig.defconfig b/boards/arm/frdm_kw41z/Kconfig.defconfig index 0dd2d4173e6..800c2ad63ef 100644 --- a/boards/arm/frdm_kw41z/Kconfig.defconfig +++ b/boards/arm/frdm_kw41z/Kconfig.defconfig @@ -68,12 +68,6 @@ endif # ADC if FXOS8700 -config FXOS8700_GPIO_NAME - default GPIO_MCUX_PORTC_NAME - -config FXOS8700_GPIO_PIN - default 1 - config FXOS8700_DRDY_INT1 def_bool y diff --git a/boards/arm/frdm_kw41z/dts.fixup b/boards/arm/frdm_kw41z/dts.fixup index 8c7f4974ee6..07608592c5f 100644 --- a/boards/arm/frdm_kw41z/dts.fixup +++ b/boards/arm/frdm_kw41z/dts.fixup @@ -1,3 +1,5 @@ #define CONFIG_FXOS8700_NAME NXP_KINETIS_I2C_40067000_NXP_FXOS8700_1F_LABEL #define CONFIG_FXOS8700_I2C_NAME NXP_KINETIS_I2C_40067000_NXP_FXOS8700_1F_BUS_NAME #define CONFIG_FXOS8700_I2C_ADDRESS NXP_KINETIS_I2C_40067000_NXP_FXOS8700_1F_BASE_ADDRESS +#define CONFIG_FXOS8700_GPIO_NAME NXP_KINETIS_I2C_40067000_NXP_FXOS8700_1F_INT1_GPIOS_CONTROLLER +#define CONFIG_FXOS8700_GPIO_PIN NXP_KINETIS_I2C_40067000_NXP_FXOS8700_1F_INT1_GPIOS_PIN diff --git a/boards/arm/frdm_kw41z/frdm_kw41z.dts b/boards/arm/frdm_kw41z/frdm_kw41z.dts index 572122092a0..ff75a9904cb 100644 --- a/boards/arm/frdm_kw41z/frdm_kw41z.dts +++ b/boards/arm/frdm_kw41z/frdm_kw41z.dts @@ -70,6 +70,7 @@ compatible = "nxp,fxos8700"; reg = <0x1f>; label = "FXOS8700"; + int1-gpios = <&gpioc 1 0>; }; }; diff --git a/boards/arm/hexiwear_k64/Kconfig.board b/boards/arm/hexiwear_k64/Kconfig.board index ff7ed2a6444..8f3f4f0bf14 100644 --- a/boards/arm/hexiwear_k64/Kconfig.board +++ b/boards/arm/hexiwear_k64/Kconfig.board @@ -9,4 +9,5 @@ config BOARD_HEXIWEAR_K64 bool "NXP Hexiwear K64" depends on SOC_SERIES_KINETIS_K6X select SOC_PART_NUMBER_MK64FN1M0VDC12 + select HAS_DTS_GPIO_DEVICE select HAS_DTS_I2C_DEVICE diff --git a/boards/arm/hexiwear_k64/Kconfig.defconfig b/boards/arm/hexiwear_k64/Kconfig.defconfig index 9fe8bc139c5..6701515ad85 100644 --- a/boards/arm/hexiwear_k64/Kconfig.defconfig +++ b/boards/arm/hexiwear_k64/Kconfig.defconfig @@ -90,16 +90,6 @@ config BATTERY_SENSE endif # ADC -if FXOS8700 - -config FXOS8700_GPIO_NAME - default GPIO_MCUX_PORTD_NAME - -config FXOS8700_GPIO_PIN - default 13 - -endif # FXOS8700 - if FXAS21002 config FXAS21002_GPIO_NAME diff --git a/boards/arm/hexiwear_k64/dts.fixup b/boards/arm/hexiwear_k64/dts.fixup index f6738bcc1cc..d71dc614865 100644 --- a/boards/arm/hexiwear_k64/dts.fixup +++ b/boards/arm/hexiwear_k64/dts.fixup @@ -1,6 +1,8 @@ #define CONFIG_FXOS8700_NAME NXP_KINETIS_I2C_40067000_NXP_FXOS8700_1E_LABEL #define CONFIG_FXOS8700_I2C_NAME NXP_KINETIS_I2C_40067000_NXP_FXOS8700_1E_BUS_NAME #define CONFIG_FXOS8700_I2C_ADDRESS NXP_KINETIS_I2C_40067000_NXP_FXOS8700_1E_BASE_ADDRESS +#define CONFIG_FXOS8700_GPIO_NAME NXP_KINETIS_I2C_40067000_NXP_FXOS8700_1E_INT2_GPIOS_CONTROLLER +#define CONFIG_FXOS8700_GPIO_PIN NXP_KINETIS_I2C_40067000_NXP_FXOS8700_1E_INT2_GPIOS_PIN #define CONFIG_FXAS21002_NAME NXP_KINETIS_I2C_40067000_NXP_FXAS21002_20_LABEL #define CONFIG_FXAS21002_I2C_NAME NXP_KINETIS_I2C_40067000_NXP_FXAS21002_20_BUS_NAME diff --git a/boards/arm/hexiwear_k64/hexiwear_k64.dts b/boards/arm/hexiwear_k64/hexiwear_k64.dts index 82cca018020..5a854432fbb 100644 --- a/boards/arm/hexiwear_k64/hexiwear_k64.dts +++ b/boards/arm/hexiwear_k64/hexiwear_k64.dts @@ -88,6 +88,8 @@ compatible = "nxp,fxos8700"; reg = <0x1e>; label = "FXOS8700"; + int1-gpios = <&gpioc 1 0>; + int2-gpios = <&gpiod 13 0>; }; fxas21002@20 { diff --git a/drivers/sensor/fxos8700/Kconfig b/drivers/sensor/fxos8700/Kconfig index 32ce915526c..0cb8515d5a7 100644 --- a/drivers/sensor/fxos8700/Kconfig +++ b/drivers/sensor/fxos8700/Kconfig @@ -109,6 +109,8 @@ config FXOS8700_TRIGGER depends on FXOS8700 default n +if !HAS_DTS_GPIO_DEVICE + config FXOS8700_GPIO_NAME string "GPIO device name" depends on FXOS8700_TRIGGER @@ -117,6 +119,8 @@ config FXOS8700_GPIO_PIN int "GPIO pin" depends on FXOS8700_TRIGGER +endif + config FXOS8700_DRDY_INT1 bool "Data ready interrupt to INT1 pin" depends on FXOS8700_TRIGGER diff --git a/dts/bindings/sensor/nxp,fxos8700.yaml b/dts/bindings/sensor/nxp,fxos8700.yaml index 01f8786710c..d475bd27cc3 100644 --- a/dts/bindings/sensor/nxp,fxos8700.yaml +++ b/dts/bindings/sensor/nxp,fxos8700.yaml @@ -19,4 +19,13 @@ properties: compatible: constraint: "nxp,fxos8700" + int1-gpios: + type: compound + category: optional + generation: define, use-prop-name + + int2-gpios: + type: compound + category: optional + generation: define, use-prop-name ...