diff --git a/CODEOWNERS b/CODEOWNERS index 687e7e94c1714..e582bf2301b27 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -335,7 +335,6 @@ /drivers/peci/ @albertofloyd @franciscomunoz @sjvasanth1 /drivers/pinctrl/ @gmarull /drivers/pinctrl/*esp32* @glaubermaroto -/drivers/pinmux/*hsdk* @iriszzw /drivers/pinmux/*it8xxx2* @ite /drivers/pm_cpu_ops/ @carlocaione /drivers/power_domain/ @ceolin diff --git a/boards/arc/hsdk/CMakeLists.txt b/boards/arc/hsdk/CMakeLists.txt index 137efa662a1e1..33bf0acc9db67 100644 --- a/boards/arc/hsdk/CMakeLists.txt +++ b/boards/arc/hsdk/CMakeLists.txt @@ -4,4 +4,4 @@ # SPDX-License-Identifier: Apache-2.0 # -zephyr_sources_ifdef(CONFIG_PINMUX_HSDK pinmux.c) +zephyr_sources(platform.c) diff --git a/boards/arc/hsdk/hsdk_2cores_defconfig b/boards/arc/hsdk/hsdk_2cores_defconfig index 4bf7d594a8651..cb53f69f707be 100644 --- a/boards/arc/hsdk/hsdk_2cores_defconfig +++ b/boards/arc/hsdk/hsdk_2cores_defconfig @@ -11,8 +11,6 @@ CONFIG_ARCV2_TIMER=y CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y CONFIG_SERIAL=y -CONFIG_PINMUX=y -CONFIG_PINMUX_HSDK=y CONFIG_GPIO=y CONFIG_SPI=y CONFIG_SMP=y diff --git a/boards/arc/hsdk/hsdk_defconfig b/boards/arc/hsdk/hsdk_defconfig index 20963ce6aa88b..68e455f3071fd 100644 --- a/boards/arc/hsdk/hsdk_defconfig +++ b/boards/arc/hsdk/hsdk_defconfig @@ -11,8 +11,6 @@ CONFIG_ARCV2_TIMER=y CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y CONFIG_SERIAL=y -CONFIG_PINMUX=y -CONFIG_PINMUX_HSDK=y CONFIG_GPIO=y CONFIG_SPI=y CONFIG_SMP=y diff --git a/boards/arc/hsdk/pinmux.c b/boards/arc/hsdk/pinmux.c deleted file mode 100644 index bcd33ed33ecef..0000000000000 --- a/boards/arc/hsdk/pinmux.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2019 Synopsys - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include - -static int board_pinmux_init(const struct device *dev) -{ - ARG_UNUSED(dev); - - const struct device *pinmux = DEVICE_DT_GET(DT_NODELABEL(pinctrl)); - - __ASSERT_NO_MSG(device_is_ready(pinmux)); - - /* - * to do configuration for each sel, - * please refer the doc for hsdk board. - */ - pinmux_pin_set(pinmux, HSDK_PINMUX_SEL0, HSDK_PINMUX_FUN0); - pinmux_pin_set(pinmux, HSDK_PINMUX_SEL1, HSDK_PINMUX_FUN0); - pinmux_pin_set(pinmux, HSDK_PINMUX_SEL2, HSDK_PINMUX_FUN0); - pinmux_pin_set(pinmux, HSDK_PINMUX_SEL3, HSDK_PINMUX_FUN2); - pinmux_pin_set(pinmux, HSDK_PINMUX_SEL4, HSDK_PINMUX_FUN0); - pinmux_pin_set(pinmux, HSDK_PINMUX_SEL5, HSDK_PINMUX_FUN0); - pinmux_pin_set(pinmux, HSDK_PINMUX_SEL6, HSDK_PINMUX_FUN0); - pinmux_pin_set(pinmux, HSDK_PINMUX_SEL7, HSDK_PINMUX_FUN0); - - return 0; -} - - -SYS_INIT(board_pinmux_init, PRE_KERNEL_1, CONFIG_PINMUX_INIT_PRIORITY); diff --git a/boards/arc/hsdk/platform.c b/boards/arc/hsdk/platform.c new file mode 100644 index 0000000000000..eb22f5ed5b0a8 --- /dev/null +++ b/boards/arc/hsdk/platform.c @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2022 Synopsys + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +#define HSDK_CREG_GPIO_MUX_REG 0xf0001484 +#define HSDK_CREG_GPIO_MUX_VAL 0x00000400 + +static int hsdk_creg_gpio_mux_init(const struct device *dev) +{ + ARG_UNUSED(dev); + + sys_write32(HSDK_CREG_GPIO_MUX_REG, HSDK_CREG_GPIO_MUX_VAL); + + return 0; +} + +SYS_INIT(hsdk_creg_gpio_mux_init, PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT); diff --git a/drivers/pinmux/CMakeLists.txt b/drivers/pinmux/CMakeLists.txt index c6d8389819d36..5f94a64566f10 100644 --- a/drivers/pinmux/CMakeLists.txt +++ b/drivers/pinmux/CMakeLists.txt @@ -1,7 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # Board initialization -zephyr_sources_ifdef(CONFIG_PINMUX_HSDK pinmux_hsdk.c) zephyr_sources_ifdef(CONFIG_PINMUX_INTEL_S1000 pinmux_intel_s1000.c) zephyr_sources_ifdef(CONFIG_PINMUX_LPC11U6X pinmux_lpc11u6x.c) zephyr_sources_ifdef(CONFIG_PINMUX_MCUX pinmux_mcux.c) diff --git a/drivers/pinmux/Kconfig b/drivers/pinmux/Kconfig index 4a3df42d2cbc5..dbe1693c068d8 100644 --- a/drivers/pinmux/Kconfig +++ b/drivers/pinmux/Kconfig @@ -26,8 +26,6 @@ config PINMUX_INIT_PRIORITY source "drivers/pinmux/Kconfig.beetle" -source "drivers/pinmux/Kconfig.hsdk" - source "drivers/pinmux/Kconfig.intel_s1000" source "drivers/pinmux/Kconfig.lpc11u6x" diff --git a/drivers/pinmux/Kconfig.hsdk b/drivers/pinmux/Kconfig.hsdk deleted file mode 100644 index 3176eb8a4ee8d..0000000000000 --- a/drivers/pinmux/Kconfig.hsdk +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (c) 2019 Synopsys, Inc. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -config PINMUX_HSDK - bool "ARC HSDK I/O pin mux driver" - depends on SOC_ARC_HSDK - help - Enable driver for ARC HSDK I/O pin mux. diff --git a/drivers/pinmux/pinmux_hsdk.c b/drivers/pinmux/pinmux_hsdk.c deleted file mode 100644 index 6751ce2b7dc00..0000000000000 --- a/drivers/pinmux/pinmux_hsdk.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2019 Synopsys, Inc. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#define DT_DRV_COMPAT snps_creg_gpio_mux_hsdk - -#include -#include -#include -#include - -#define creg_gpio_mux_reg (*(volatile uint32_t *)DT_INST_REG_ADDR(0)) - -void _arc_sync(void) -{ - __asm__ volatile("sync"); -} - -static int pinmux_hsdk_set(const struct device *dev, uint32_t pin, - uint32_t func) -{ - - if (func >= HSDK_PINMUX_FUNS || pin >= HSDK_PINMUX_SELS) - return -EINVAL; - - creg_gpio_mux_reg &= ~(0x07U << (pin * 3)); - creg_gpio_mux_reg |= (func << (pin * 3)); - - _arc_sync(); - - return 0; -} - -static int pinmux_hsdk_get(const struct device *dev, uint32_t pin, - uint32_t *func) -{ - - if (pin >= HSDK_PINMUX_SELS || func == NULL) - return -EINVAL; - - *func = (creg_gpio_mux_reg >> (pin * 3)) & 0x07U; - - return 0; -} - -static int pinmux_hsdk_pullup(const struct device *dev, uint32_t pin, - uint8_t func) -{ - return -ENOTSUP; -} - -static int pinmux_hsdk_input(const struct device *dev, uint32_t pin, - uint8_t func) -{ - return -ENOTSUP; -} - -static int pinmux_hsdk_init(const struct device *dev) -{ - ARG_UNUSED(dev); - return 0; -} - -static const struct pinmux_driver_api pinmux_hsdk_driver_api = { - .set = pinmux_hsdk_set, - .get = pinmux_hsdk_get, - .pullup = pinmux_hsdk_pullup, - .input = pinmux_hsdk_input, -}; - -DEVICE_DT_INST_DEFINE(0, - &pinmux_hsdk_init, NULL, NULL, NULL, - PRE_KERNEL_1, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, - &pinmux_hsdk_driver_api); diff --git a/dts/arc/synopsys/arc_hsdk.dtsi b/dts/arc/synopsys/arc_hsdk.dtsi index 95de7c518c321..2d6bbe25b1745 100644 --- a/dts/arc/synopsys/arc_hsdk.dtsi +++ b/dts/arc/synopsys/arc_hsdk.dtsi @@ -66,11 +66,6 @@ reg = <0x90000000 0x50000000>; }; - pinctrl: pinctrl@f0001484 { - compatible = "snps,creg-gpio-mux-hsdk"; - reg = <0xf0001484 0x4>; - }; - uart0: uart@f0005000 { compatible = "ns16550"; clock-frequency = <33333333>; diff --git a/dts/bindings/pinctrl/snps,creg-gpio-mux-hsdk.yaml b/dts/bindings/pinctrl/snps,creg-gpio-mux-hsdk.yaml deleted file mode 100644 index ce428a91db1e3..0000000000000 --- a/dts/bindings/pinctrl/snps,creg-gpio-mux-hsdk.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) 2021, Linaro Limited -# SPDX-License-Identifier: Apache-2.0 - -description: | - Synopsys CREG HSDK GPIO pin mux - -compatible: "snps,creg-gpio-mux-hsdk" - -include: base.yaml - -properties: - reg: - required: true - -pinmux-cells: - - pin - - function