mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-29 08:00:26 +09:00
pinctrl: meson: add g12a support
Add pinctrl support for the Amlogic G12A SoC, which is very similar to the Amlogic AXG support but with an additionnal drive-strength register bank. Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
This commit is contained in:
parent
d0a9b82b75
commit
f91121c794
@ -25,4 +25,8 @@ config PINCTRL_MESON_AXG
|
|||||||
bool "Amlogic Meson AXG SoC pinctrl driver"
|
bool "Amlogic Meson AXG SoC pinctrl driver"
|
||||||
select PINCTRL_MESON_AXG_PMX
|
select PINCTRL_MESON_AXG_PMX
|
||||||
|
|
||||||
|
config PINCTRL_MESON_G12A
|
||||||
|
bool "Amlogic Meson G12a SoC pinctrl driver"
|
||||||
|
select PINCTRL_MESON_AXG_PMX
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@ -6,3 +6,4 @@ obj-$(CONFIG_PINCTRL_MESON_AXG_PMX) += pinctrl-meson-axg-pmx.o
|
|||||||
obj-$(CONFIG_PINCTRL_MESON_GXBB) += pinctrl-meson-gxbb.o
|
obj-$(CONFIG_PINCTRL_MESON_GXBB) += pinctrl-meson-gxbb.o
|
||||||
obj-$(CONFIG_PINCTRL_MESON_GXL) += pinctrl-meson-gxl.o
|
obj-$(CONFIG_PINCTRL_MESON_GXL) += pinctrl-meson-gxl.o
|
||||||
obj-$(CONFIG_PINCTRL_MESON_AXG) += pinctrl-meson-axg.o
|
obj-$(CONFIG_PINCTRL_MESON_AXG) += pinctrl-meson-axg.o
|
||||||
|
obj-$(CONFIG_PINCTRL_MESON_G12A) += pinctrl-meson-g12a.o
|
||||||
|
1294
drivers/pinctrl/meson/pinctrl-meson-g12a.c
Normal file
1294
drivers/pinctrl/meson/pinctrl-meson-g12a.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -314,10 +314,10 @@ int meson_pinctrl_probe(struct udevice *dev)
|
|||||||
priv->reg_gpio = (void __iomem *)addr;
|
priv->reg_gpio = (void __iomem *)addr;
|
||||||
|
|
||||||
addr = parse_address(gpio, "pull", na, ns);
|
addr = parse_address(gpio, "pull", na, ns);
|
||||||
if (addr == FDT_ADDR_T_NONE) {
|
/* Use gpio region if pull one is not present */
|
||||||
debug("pull address not found\n");
|
if (addr == FDT_ADDR_T_NONE)
|
||||||
return -EINVAL;
|
priv->reg_pull = priv->reg_gpio;
|
||||||
}
|
else
|
||||||
priv->reg_pull = (void __iomem *)addr;
|
priv->reg_pull = (void __iomem *)addr;
|
||||||
|
|
||||||
addr = parse_address(gpio, "pull-enable", na, ns);
|
addr = parse_address(gpio, "pull-enable", na, ns);
|
||||||
@ -327,6 +327,13 @@ int meson_pinctrl_probe(struct udevice *dev)
|
|||||||
else
|
else
|
||||||
priv->reg_pullen = (void __iomem *)addr;
|
priv->reg_pullen = (void __iomem *)addr;
|
||||||
|
|
||||||
|
addr = parse_address(gpio, "ds", na, ns);
|
||||||
|
/* Drive strength region is optional */
|
||||||
|
if (addr == FDT_ADDR_T_NONE)
|
||||||
|
priv->reg_ds = NULL;
|
||||||
|
else
|
||||||
|
priv->reg_ds = (void __iomem *)addr;
|
||||||
|
|
||||||
priv->data = (struct meson_pinctrl_data *)dev_get_driver_data(dev);
|
priv->data = (struct meson_pinctrl_data *)dev_get_driver_data(dev);
|
||||||
|
|
||||||
/* Lookup GPIO driver */
|
/* Lookup GPIO driver */
|
||||||
|
@ -41,6 +41,7 @@ struct meson_pinctrl {
|
|||||||
void __iomem *reg_gpio;
|
void __iomem *reg_gpio;
|
||||||
void __iomem *reg_pull;
|
void __iomem *reg_pull;
|
||||||
void __iomem *reg_pullen;
|
void __iomem *reg_pullen;
|
||||||
|
void __iomem *reg_ds;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user