diff options
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/74x164_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/altera_pio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/atmel_pio4.c | 1 | ||||
-rw-r--r-- | drivers/gpio/da8xx_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/gpio-rcar.c | 1 | ||||
-rw-r--r-- | drivers/gpio/gpio-rza1.c | 1 | ||||
-rw-r--r-- | drivers/gpio/gpio-uclass.c | 1 | ||||
-rw-r--r-- | drivers/gpio/intel_broadwell_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/intel_ich6_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/mpc8xxx_gpio.c | 47 | ||||
-rw-r--r-- | drivers/gpio/msm_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/mxs_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/nx_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/omap_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/pcf8575_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/pic32_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/s5p_gpio.c | 1 | ||||
-rw-r--r-- | drivers/gpio/vybrid_gpio.c | 1 |
18 files changed, 25 insertions, 39 deletions
diff --git a/drivers/gpio/74x164_gpio.c b/drivers/gpio/74x164_gpio.c index 0c06301a81c..7a7cfe86114 100644 --- a/drivers/gpio/74x164_gpio.c +++ b/drivers/gpio/74x164_gpio.c @@ -13,6 +13,7 @@ #include <dm.h> #include <fdtdec.h> #include <malloc.h> +#include <asm/global_data.h> #include <asm/gpio.h> #include <asm/io.h> #include <dm/device_compat.h> diff --git a/drivers/gpio/altera_pio.c b/drivers/gpio/altera_pio.c index f4582b1467c..edc5a8093b0 100644 --- a/drivers/gpio/altera_pio.c +++ b/drivers/gpio/altera_pio.c @@ -9,6 +9,7 @@ #include <errno.h> #include <malloc.h> #include <fdtdec.h> +#include <asm/global_data.h> #include <asm/io.h> #include <asm/gpio.h> diff --git a/drivers/gpio/atmel_pio4.c b/drivers/gpio/atmel_pio4.c index e7b8f231ccf..f615fce32e1 100644 --- a/drivers/gpio/atmel_pio4.c +++ b/drivers/gpio/atmel_pio4.c @@ -11,6 +11,7 @@ #include <fdtdec.h> #include <malloc.h> #include <asm/arch/hardware.h> +#include <asm/global_data.h> #include <asm/gpio.h> #include <linux/bitops.h> #include <mach/gpio.h> diff --git a/drivers/gpio/da8xx_gpio.c b/drivers/gpio/da8xx_gpio.c index 9a52a5e414f..d106e9846df 100644 --- a/drivers/gpio/da8xx_gpio.c +++ b/drivers/gpio/da8xx_gpio.c @@ -11,6 +11,7 @@ #include <fdtdec.h> #include <malloc.h> #include <asm/io.h> +#include <asm/global_data.h> #include <asm/gpio.h> #include <dt-bindings/gpio/gpio.h> diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c index beae34f233a..daaac5e7844 100644 --- a/drivers/gpio/gpio-rcar.c +++ b/drivers/gpio/gpio-rcar.c @@ -7,6 +7,7 @@ #include <clk.h> #include <dm.h> #include <malloc.h> +#include <asm/global_data.h> #include <dm/device_compat.h> #include <dm/pinctrl.h> #include <errno.h> diff --git a/drivers/gpio/gpio-rza1.c b/drivers/gpio/gpio-rza1.c index ee7de4c17e9..f14be871e8d 100644 --- a/drivers/gpio/gpio-rza1.c +++ b/drivers/gpio/gpio-rza1.c @@ -7,6 +7,7 @@ #include <clk.h> #include <dm.h> #include <errno.h> +#include <asm/global_data.h> #include <asm/gpio.h> #include <asm/io.h> #include <linux/bitops.h> diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c index bad6b71e0c3..4a9b74e1ca1 100644 --- a/drivers/gpio/gpio-uclass.c +++ b/drivers/gpio/gpio-uclass.c @@ -16,6 +16,7 @@ #include <fdtdec.h> #include <malloc.h> #include <acpi/acpi_device.h> +#include <asm/global_data.h> #include <asm/gpio.h> #include <dm/device_compat.h> #include <linux/bug.h> diff --git a/drivers/gpio/intel_broadwell_gpio.c b/drivers/gpio/intel_broadwell_gpio.c index 68d72eedc5a..20af35de2cf 100644 --- a/drivers/gpio/intel_broadwell_gpio.c +++ b/drivers/gpio/intel_broadwell_gpio.c @@ -12,6 +12,7 @@ #include <pci.h> #include <syscon.h> #include <asm/cpu.h> +#include <asm/global_data.h> #include <asm/gpio.h> #include <asm/io.h> #include <asm/pci.h> diff --git a/drivers/gpio/intel_ich6_gpio.c b/drivers/gpio/intel_ich6_gpio.c index 11d4be04f56..63a07b9592a 100644 --- a/drivers/gpio/intel_ich6_gpio.c +++ b/drivers/gpio/intel_ich6_gpio.c @@ -34,6 +34,7 @@ #include <pch.h> #include <pci.h> #include <asm/cpu.h> +#include <asm/global_data.h> #include <asm/gpio.h> #include <asm/io.h> #include <asm/pci.h> diff --git a/drivers/gpio/mpc8xxx_gpio.c b/drivers/gpio/mpc8xxx_gpio.c index a964347fa32..c7336032894 100644 --- a/drivers/gpio/mpc8xxx_gpio.c +++ b/drivers/gpio/mpc8xxx_gpio.c @@ -6,7 +6,7 @@ * based on arch/powerpc/include/asm/mpc85xx_gpio.h, which is * * Copyright 2010 eXMeritus, A Boeing Company - * Copyright 2020 NXP + * Copyright 2020-2021 NXP */ #include <common.h> @@ -16,16 +16,6 @@ #include <asm/io.h> #include <dm/of_access.h> -struct ccsr_gpio { - u32 gpdir; - u32 gpodr; - u32 gpdat; - u32 gpier; - u32 gpimr; - u32 gpicr; - u32 gpibe; -}; - struct mpc8xxx_gpio_data { /* The bank's register base in memory */ struct ccsr_gpio __iomem *base; @@ -187,32 +177,11 @@ static int mpc8xxx_gpio_of_to_plat(struct udevice *dev) { struct mpc8xxx_gpio_plat *plat = dev_get_plat(dev); struct mpc8xxx_gpio_data *data = dev_get_priv(dev); - fdt_addr_t addr; - u32 i; - u32 reg[4]; - if (ofnode_read_bool(dev_ofnode(dev), "little-endian")) + if (dev_read_bool(dev, "little-endian")) data->little_endian = true; - if (data->little_endian) - dev_read_u32_array(dev, "reg", reg, 4); - else - dev_read_u32_array(dev, "reg", reg, 2); - - if (data->little_endian) { - for (i = 0; i < 2; i++) - reg[i] = be32_to_cpu(reg[i]); - } - - addr = dev_translate_address(dev, reg); - - plat->addr = addr; - - if (data->little_endian) - plat->size = reg[3]; - else - plat->size = reg[1]; - + plat->addr = (ulong)dev_read_addr_size_index(dev, 0, (fdt_size_t *)&plat->size); plat->ngpios = dev_read_u32_default(dev, "ngpios", 32); return 0; @@ -257,11 +226,11 @@ static int mpc8xxx_gpio_probe(struct udevice *dev) if (!str) return -ENOMEM; - if (ofnode_device_is_compatible(dev_ofnode(dev), "fsl,qoriq-gpio")) { - unsigned long gpibe = data->addr + sizeof(struct ccsr_gpio) - - sizeof(u32); - - out_be32((unsigned int *)gpibe, 0xffffffff); + if (device_is_compatible(dev, "fsl,qoriq-gpio")) { + if (data->little_endian) + out_le32(&data->base->gpibe, 0xffffffff); + else + out_be32(&data->base->gpibe, 0xffffffff); } uc_priv->bank_name = str; diff --git a/drivers/gpio/msm_gpio.c b/drivers/gpio/msm_gpio.c index af6c8383aa6..e1ff84c1c03 100644 --- a/drivers/gpio/msm_gpio.c +++ b/drivers/gpio/msm_gpio.c @@ -8,6 +8,7 @@ #include <common.h> #include <dm.h> #include <errno.h> +#include <asm/global_data.h> #include <asm/gpio.h> #include <asm/io.h> diff --git a/drivers/gpio/mxs_gpio.c b/drivers/gpio/mxs_gpio.c index 4b2b18fdb53..5775a22abd4 100644 --- a/drivers/gpio/mxs_gpio.c +++ b/drivers/gpio/mxs_gpio.c @@ -9,6 +9,7 @@ #include <common.h> #include <log.h> #include <malloc.h> +#include <asm/global_data.h> #include <linux/bitops.h> #include <linux/errno.h> #include <asm/io.h> diff --git a/drivers/gpio/nx_gpio.c b/drivers/gpio/nx_gpio.c index 52851e58b69..e2565d70953 100644 --- a/drivers/gpio/nx_gpio.c +++ b/drivers/gpio/nx_gpio.c @@ -8,6 +8,7 @@ #include <dm.h> #include <errno.h> #include <malloc.h> +#include <asm/global_data.h> #include <asm/io.h> #include <asm/gpio.h> diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c index 336ece47785..316a28efa6b 100644 --- a/drivers/gpio/omap_gpio.c +++ b/drivers/gpio/omap_gpio.c @@ -20,6 +20,7 @@ #include <common.h> #include <dm.h> #include <fdtdec.h> +#include <asm/global_data.h> #include <asm/gpio.h> #include <asm/io.h> #include <dm/device-internal.h> diff --git a/drivers/gpio/pcf8575_gpio.c b/drivers/gpio/pcf8575_gpio.c index 6d38646ef66..359646266c9 100644 --- a/drivers/gpio/pcf8575_gpio.c +++ b/drivers/gpio/pcf8575_gpio.c @@ -28,6 +28,7 @@ #include <i2c.h> #include <log.h> #include <asm-generic/gpio.h> +#include <asm/global_data.h> #include <linux/bitops.h> DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/gpio/pic32_gpio.c b/drivers/gpio/pic32_gpio.c index 253a9ba2f84..975a2af3ccb 100644 --- a/drivers/gpio/pic32_gpio.c +++ b/drivers/gpio/pic32_gpio.c @@ -8,6 +8,7 @@ #include <dm.h> #include <errno.h> #include <malloc.h> +#include <asm/global_data.h> #include <asm/io.h> #include <asm/gpio.h> #include <linux/bitops.h> diff --git a/drivers/gpio/s5p_gpio.c b/drivers/gpio/s5p_gpio.c index 796fe3e1104..76f35ac5d92 100644 --- a/drivers/gpio/s5p_gpio.c +++ b/drivers/gpio/s5p_gpio.c @@ -10,6 +10,7 @@ #include <fdtdec.h> #include <log.h> #include <malloc.h> +#include <asm/global_data.h> #include <asm/io.h> #include <asm/gpio.h> #include <dm/device-internal.h> diff --git a/drivers/gpio/vybrid_gpio.c b/drivers/gpio/vybrid_gpio.c index fcce90c53c2..339392dcd35 100644 --- a/drivers/gpio/vybrid_gpio.c +++ b/drivers/gpio/vybrid_gpio.c @@ -8,6 +8,7 @@ #include <dm.h> #include <errno.h> #include <fdtdec.h> +#include <asm/global_data.h> #include <asm/gpio.h> #include <asm/mach-imx/iomux-v3.h> #include <asm/io.h> |