soc: gd_gd32: move pinctrl_soc.h content back to soc folder
Because we can now group all architectures within the same family, so there's no need to place files outside of soc/family folder. Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
This commit is contained in:
committed by
Carles Cufi
parent
2bd84a1bc5
commit
71600d7e95
@@ -1,194 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2021 Teslabs Engineering S.L.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Gigadevice SoC specific helpers for pinctrl driver
|
||||
*/
|
||||
|
||||
#ifndef ZEPHYR_INCLUDE_DRIVERS_PINCTRL_PINCTRL_SOC_GD32_COMMON_H_
|
||||
#define ZEPHYR_INCLUDE_DRIVERS_PINCTRL_PINCTRL_SOC_GD32_COMMON_H_
|
||||
|
||||
#include <zephyr/devicetree.h>
|
||||
#include <zephyr/types.h>
|
||||
|
||||
#ifdef CONFIG_PINCTRL_GD32_AF
|
||||
#include <dt-bindings/pinctrl/gd32-af.h>
|
||||
#else
|
||||
#include <dt-bindings/pinctrl/gd32-afio.h>
|
||||
#endif /* CONFIG_PINCTRL_GD32_AF */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** @cond INTERNAL_HIDDEN */
|
||||
|
||||
/** @brief Type for GD32 pin.
|
||||
*
|
||||
* Bits (AF model):
|
||||
* - 0-12: GD32_PINMUX_AF bit field.
|
||||
* - 13-25: Reserved.
|
||||
* - 26-31: Pin configuration bit field (@ref GD32_PINCFG).
|
||||
*
|
||||
* Bits (AFIO model):
|
||||
* - 0-19: GD32_PINMUX_AFIO bit field.
|
||||
* - 20-25: Reserved.
|
||||
* - 26-31: Pin configuration bit field (@ref GD32_PINCFG).
|
||||
*/
|
||||
typedef uint32_t pinctrl_soc_pin_t;
|
||||
|
||||
/**
|
||||
* @brief Utility macro to initialize each pin.
|
||||
*
|
||||
* @param node_id Node identifier.
|
||||
* @param prop Property name.
|
||||
* @param idx Property entry index.
|
||||
*/
|
||||
#define Z_PINCTRL_STATE_PIN_INIT(node_id, prop, idx) \
|
||||
(DT_PROP_BY_IDX(node_id, prop, idx) | \
|
||||
((GD32_PUPD_PULLUP * DT_PROP(node_id, bias_pull_up)) \
|
||||
<< GD32_PUPD_POS) | \
|
||||
((GD32_PUPD_PULLDOWN * DT_PROP(node_id, bias_pull_down)) \
|
||||
<< GD32_PUPD_POS) | \
|
||||
((GD32_OTYPE_OD * DT_PROP(node_id, drive_open_drain)) \
|
||||
<< GD32_OTYPE_POS) | \
|
||||
(DT_ENUM_IDX(node_id, slew_rate) << GD32_OSPEED_POS)),
|
||||
|
||||
/**
|
||||
* @brief Utility macro to initialize state pins contained in a given property.
|
||||
*
|
||||
* @param node_id Node identifier.
|
||||
* @param prop Property name describing state pins.
|
||||
*/
|
||||
#define Z_PINCTRL_STATE_PINS_INIT(node_id, prop) \
|
||||
{DT_FOREACH_CHILD_VARGS(DT_PHANDLE(node_id, prop), \
|
||||
DT_FOREACH_PROP_ELEM, pinmux, \
|
||||
Z_PINCTRL_STATE_PIN_INIT)}
|
||||
|
||||
/** @endcond */
|
||||
|
||||
/**
|
||||
* @name GD32 PUPD (values match the ones in the HAL for AF model).
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** No pull-up/down */
|
||||
#define GD32_PUPD_NONE 0U
|
||||
/** Pull-up */
|
||||
#define GD32_PUPD_PULLUP 1U
|
||||
/** Pull-down */
|
||||
#define GD32_PUPD_PULLDOWN 2U
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name GD32 OTYPE (values match the ones in the HAL for AF model).
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** Push-pull */
|
||||
#define GD32_OTYPE_PP 0U
|
||||
/** Open-drain */
|
||||
#define GD32_OTYPE_OD 1U
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name GD32 OSPEED (values match the ones in the HAL for AF model, mode minus
|
||||
* one for AFIO model).
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_PINCTRL_GD32_AF
|
||||
/** Maximum 2MHz */
|
||||
#define GD32_OSPEED_2MHZ 0U
|
||||
#if defined(CONFIG_SOC_SERIES_GD32F3X0) || \
|
||||
defined(CONFIG_SOC_SERIES_GD32A50X) || \
|
||||
defined(CONFIG_SOC_SERIES_GD32L23X)
|
||||
/** Maximum 10MHz */
|
||||
#define GD32_OSPEED_10MHZ 1U
|
||||
/** Maximum 50MHz */
|
||||
#define GD32_OSPEED_50MHZ 3U
|
||||
#else
|
||||
/** Maximum 25MHz */
|
||||
#define GD32_OSPEED_25MHZ 1U
|
||||
/** Maximum 50MHz */
|
||||
#define GD32_OSPEED_50MHZ 2U
|
||||
/** Maximum speed */
|
||||
#define GD32_OSPEED_MAX 3U
|
||||
#endif
|
||||
|
||||
#else /* CONFIG_PINCTRL_GD32_AF */
|
||||
/** Maximum 10MHz */
|
||||
#define GD32_OSPEED_10MHZ 0U
|
||||
/** Maximum 2MHz */
|
||||
#define GD32_OSPEED_2MHZ 1U
|
||||
/** Maximum 50MHz */
|
||||
#define GD32_OSPEED_50MHZ 2U
|
||||
/** Maximum speed */
|
||||
#define GD32_OSPEED_MAX 3U
|
||||
#endif /* CONFIG_PINCTRL_GD32_AF */
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name GD32 pin configuration bit field mask and positions.
|
||||
* @anchor GD32_PINCFG
|
||||
*
|
||||
* Fields:
|
||||
*
|
||||
* - 31..29: Pull-up/down
|
||||
* - 28: Output type
|
||||
* - 27..26: Output speed
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** PUPD field mask. */
|
||||
#define GD32_PUPD_MSK 0x3U
|
||||
/** PUPD field position. */
|
||||
#define GD32_PUPD_POS 29U
|
||||
/** OTYPE field mask. */
|
||||
#define GD32_OTYPE_MSK 0x1U
|
||||
/** OTYPE field position. */
|
||||
#define GD32_OTYPE_POS 28U
|
||||
/** OSPEED field mask. */
|
||||
#define GD32_OSPEED_MSK 0x3U
|
||||
/** OSPEED field position. */
|
||||
#define GD32_OSPEED_POS 26U
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* Obtain PUPD field from pinctrl_soc_pin_t configuration.
|
||||
*
|
||||
* @param pincfg pinctrl_soc_pin_t bit field value.
|
||||
*/
|
||||
#define GD32_PUPD_GET(pincfg) \
|
||||
(((pincfg) >> GD32_PUPD_POS) & GD32_PUPD_MSK)
|
||||
|
||||
/**
|
||||
* Obtain OTYPE field from pinctrl_soc_pin_t configuration.
|
||||
*
|
||||
* @param pincfg pinctrl_soc_pin_t bit field value.
|
||||
*/
|
||||
#define GD32_OTYPE_GET(pincfg) \
|
||||
(((pincfg) >> GD32_OTYPE_POS) & GD32_OTYPE_MSK)
|
||||
|
||||
/**
|
||||
* Obtain OSPEED field from pinctrl_soc_pin_t configuration.
|
||||
*
|
||||
* @param pincfg pinctrl_soc_pin_t bit field value.
|
||||
*/
|
||||
#define GD32_OSPEED_GET(pincfg) \
|
||||
(((pincfg) >> GD32_OSPEED_POS) & GD32_OSPEED_MSK)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ZEPHYR_INCLUDE_DRIVERS_PINCTRL_PINCTRL_SOC_GD32_COMMON_H_ */
|
||||
@@ -9,9 +9,186 @@
|
||||
* Gigadevice SoC specific helpers for pinctrl driver
|
||||
*/
|
||||
|
||||
#ifndef ZEPHYR_SOC_ARM_GIGADEVICE_COMMON_PINCTRL_SOC_H_
|
||||
#define ZEPHYR_SOC_ARM_GIGADEVICE_COMMON_PINCTRL_SOC_H_
|
||||
#ifndef ZEPHYR_INCLUDE_DRIVERS_PINCTRL_PINCTRL_SOC_GD32_COMMON_H_
|
||||
#define ZEPHYR_INCLUDE_DRIVERS_PINCTRL_PINCTRL_SOC_GD32_COMMON_H_
|
||||
|
||||
#include <zephyr/drivers/pinctrl/pinctrl_soc_gd32_common.h>
|
||||
#include <zephyr/devicetree.h>
|
||||
#include <zephyr/types.h>
|
||||
|
||||
#endif /* ZEPHYR_SOC_ARM_GIGADEVICE_COMMON_PINCTRL_SOC_H_ */
|
||||
#ifdef CONFIG_PINCTRL_GD32_AF
|
||||
#include <dt-bindings/pinctrl/gd32-af.h>
|
||||
#else
|
||||
#include <dt-bindings/pinctrl/gd32-afio.h>
|
||||
#endif /* CONFIG_PINCTRL_GD32_AF */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** @cond INTERNAL_HIDDEN */
|
||||
|
||||
/** @brief Type for GD32 pin.
|
||||
*
|
||||
* Bits (AF model):
|
||||
* - 0-12: GD32_PINMUX_AF bit field.
|
||||
* - 13-25: Reserved.
|
||||
* - 26-31: Pin configuration bit field (@ref GD32_PINCFG).
|
||||
*
|
||||
* Bits (AFIO model):
|
||||
* - 0-19: GD32_PINMUX_AFIO bit field.
|
||||
* - 20-25: Reserved.
|
||||
* - 26-31: Pin configuration bit field (@ref GD32_PINCFG).
|
||||
*/
|
||||
typedef uint32_t pinctrl_soc_pin_t;
|
||||
|
||||
/**
|
||||
* @brief Utility macro to initialize each pin.
|
||||
*
|
||||
* @param node_id Node identifier.
|
||||
* @param prop Property name.
|
||||
* @param idx Property entry index.
|
||||
*/
|
||||
#define Z_PINCTRL_STATE_PIN_INIT(node_id, prop, idx) \
|
||||
(DT_PROP_BY_IDX(node_id, prop, idx) | \
|
||||
((GD32_PUPD_PULLUP * DT_PROP(node_id, bias_pull_up)) \
|
||||
<< GD32_PUPD_POS) | \
|
||||
((GD32_PUPD_PULLDOWN * DT_PROP(node_id, bias_pull_down)) \
|
||||
<< GD32_PUPD_POS) | \
|
||||
((GD32_OTYPE_OD * DT_PROP(node_id, drive_open_drain)) \
|
||||
<< GD32_OTYPE_POS) | \
|
||||
(DT_ENUM_IDX(node_id, slew_rate) << GD32_OSPEED_POS)),
|
||||
|
||||
/**
|
||||
* @brief Utility macro to initialize state pins contained in a given property.
|
||||
*
|
||||
* @param node_id Node identifier.
|
||||
* @param prop Property name describing state pins.
|
||||
*/
|
||||
#define Z_PINCTRL_STATE_PINS_INIT(node_id, prop) \
|
||||
{DT_FOREACH_CHILD_VARGS(DT_PHANDLE(node_id, prop), \
|
||||
DT_FOREACH_PROP_ELEM, pinmux, \
|
||||
Z_PINCTRL_STATE_PIN_INIT)}
|
||||
|
||||
/** @endcond */
|
||||
|
||||
/**
|
||||
* @name GD32 PUPD (values match the ones in the HAL for AF model).
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** No pull-up/down */
|
||||
#define GD32_PUPD_NONE 0U
|
||||
/** Pull-up */
|
||||
#define GD32_PUPD_PULLUP 1U
|
||||
/** Pull-down */
|
||||
#define GD32_PUPD_PULLDOWN 2U
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name GD32 OTYPE (values match the ones in the HAL for AF model).
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** Push-pull */
|
||||
#define GD32_OTYPE_PP 0U
|
||||
/** Open-drain */
|
||||
#define GD32_OTYPE_OD 1U
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name GD32 OSPEED (values match the ones in the HAL for AF model, mode minus
|
||||
* one for AFIO model).
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_PINCTRL_GD32_AF
|
||||
/** Maximum 2MHz */
|
||||
#define GD32_OSPEED_2MHZ 0U
|
||||
#if defined(CONFIG_SOC_SERIES_GD32F3X0) || \
|
||||
defined(CONFIG_SOC_SERIES_GD32A50X) || \
|
||||
defined(CONFIG_SOC_SERIES_GD32L23X)
|
||||
/** Maximum 10MHz */
|
||||
#define GD32_OSPEED_10MHZ 1U
|
||||
/** Maximum 50MHz */
|
||||
#define GD32_OSPEED_50MHZ 3U
|
||||
#else
|
||||
/** Maximum 25MHz */
|
||||
#define GD32_OSPEED_25MHZ 1U
|
||||
/** Maximum 50MHz */
|
||||
#define GD32_OSPEED_50MHZ 2U
|
||||
/** Maximum speed */
|
||||
#define GD32_OSPEED_MAX 3U
|
||||
#endif
|
||||
|
||||
#else /* CONFIG_PINCTRL_GD32_AF */
|
||||
/** Maximum 10MHz */
|
||||
#define GD32_OSPEED_10MHZ 0U
|
||||
/** Maximum 2MHz */
|
||||
#define GD32_OSPEED_2MHZ 1U
|
||||
/** Maximum 50MHz */
|
||||
#define GD32_OSPEED_50MHZ 2U
|
||||
/** Maximum speed */
|
||||
#define GD32_OSPEED_MAX 3U
|
||||
#endif /* CONFIG_PINCTRL_GD32_AF */
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @name GD32 pin configuration bit field mask and positions.
|
||||
* @anchor GD32_PINCFG
|
||||
*
|
||||
* Fields:
|
||||
*
|
||||
* - 31..29: Pull-up/down
|
||||
* - 28: Output type
|
||||
* - 27..26: Output speed
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** PUPD field mask. */
|
||||
#define GD32_PUPD_MSK 0x3U
|
||||
/** PUPD field position. */
|
||||
#define GD32_PUPD_POS 29U
|
||||
/** OTYPE field mask. */
|
||||
#define GD32_OTYPE_MSK 0x1U
|
||||
/** OTYPE field position. */
|
||||
#define GD32_OTYPE_POS 28U
|
||||
/** OSPEED field mask. */
|
||||
#define GD32_OSPEED_MSK 0x3U
|
||||
/** OSPEED field position. */
|
||||
#define GD32_OSPEED_POS 26U
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* Obtain PUPD field from pinctrl_soc_pin_t configuration.
|
||||
*
|
||||
* @param pincfg pinctrl_soc_pin_t bit field value.
|
||||
*/
|
||||
#define GD32_PUPD_GET(pincfg) \
|
||||
(((pincfg) >> GD32_PUPD_POS) & GD32_PUPD_MSK)
|
||||
|
||||
/**
|
||||
* Obtain OTYPE field from pinctrl_soc_pin_t configuration.
|
||||
*
|
||||
* @param pincfg pinctrl_soc_pin_t bit field value.
|
||||
*/
|
||||
#define GD32_OTYPE_GET(pincfg) \
|
||||
(((pincfg) >> GD32_OTYPE_POS) & GD32_OTYPE_MSK)
|
||||
|
||||
/**
|
||||
* Obtain OSPEED field from pinctrl_soc_pin_t configuration.
|
||||
*
|
||||
* @param pincfg pinctrl_soc_pin_t bit field value.
|
||||
*/
|
||||
#define GD32_OSPEED_GET(pincfg) \
|
||||
(((pincfg) >> GD32_OSPEED_POS) & GD32_OSPEED_MSK)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ZEPHYR_INCLUDE_DRIVERS_PINCTRL_PINCTRL_SOC_GD32_COMMON_H_ */
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2021 Tokita, Hiroshi <tokita.hiroshi@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Gigadevice SoC specific helpers for pinctrl driver
|
||||
*/
|
||||
|
||||
#ifndef ZEPHYR_SOC_RISCV_RISCV_PRIVILEGED_NUCLEI_GD32VF103_COMMON_PINCTRL_SOC_H_
|
||||
#define ZEPHYR_SOC_RISCV_RISCV_PRIVILEGED_NUCLEI_GD32VF103_COMMON_PINCTRL_SOC_H_
|
||||
|
||||
#include <zephyr/drivers/pinctrl/pinctrl_soc_gd32_common.h>
|
||||
|
||||
#endif /* ZEPHYR_SOC_RISCV_RISCV_PRIVILEGED_NUCLEI_GD32VF103_COMMON_PINCTRL_SOC_H_ */
|
||||
Reference in New Issue
Block a user