diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ata/ahci.c | 2 | ||||
-rw-r--r-- | drivers/bios_emulator/biosemu.c | 4 | ||||
-rw-r--r-- | drivers/clk/kendryte/clk.c | 4 | ||||
-rw-r--r-- | drivers/core/regmap.c | 59 | ||||
-rw-r--r-- | drivers/firmware/psci.c | 2 | ||||
-rw-r--r-- | drivers/mtd/nand/raw/mxc_nand_spl.c | 2 | ||||
-rw-r--r-- | drivers/pinctrl/nxp/pinctrl-imx5.c | 2 | ||||
-rw-r--r-- | drivers/pinctrl/nxp/pinctrl-imx7.c | 2 | ||||
-rw-r--r-- | drivers/pinctrl/nxp/pinctrl-imx8m.c | 2 | ||||
-rw-r--r-- | drivers/power/pmic/pmic_tps62362.c | 2 | ||||
-rw-r--r-- | drivers/power/pmic/pmic_tps65217.c | 2 | ||||
-rw-r--r-- | drivers/power/pmic/pmic_tps65218.c | 2 | ||||
-rw-r--r-- | drivers/power/pmic/pmic_tps65910.c | 2 | ||||
-rw-r--r-- | drivers/serial/serial_pl01x.c | 4 |
14 files changed, 73 insertions, 18 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 57c4e153bac..d4047c04f5d 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -110,7 +110,7 @@ static int waiting_for_cmd_completed(void __iomem *offset, return (i < timeout_msec) ? 0 : -1; } -int __weak ahci_link_up(struct ahci_uc_priv *uc_priv, u8 port) +int __weak ahci_link_up(struct ahci_uc_priv *uc_priv, int port) { u32 tmp; int j = 0; diff --git a/drivers/bios_emulator/biosemu.c b/drivers/bios_emulator/biosemu.c index 9d4f07c074d..82befbae66f 100644 --- a/drivers/bios_emulator/biosemu.c +++ b/drivers/bios_emulator/biosemu.c @@ -50,7 +50,7 @@ #include "biosemui.h" BE_sysEnv _BE_env = {{0}}; -static X86EMU_memFuncs _BE_mem __attribute__((section(GOT2_TYPE))) = { +static X86EMU_memFuncs _BE_mem __section(GOT2_TYPE) = { BE_rdb, BE_rdw, BE_rdl, @@ -59,7 +59,7 @@ static X86EMU_memFuncs _BE_mem __attribute__((section(GOT2_TYPE))) = { BE_wrl, }; -static X86EMU_pioFuncs _BE_pio __attribute__((section(GOT2_TYPE))) = { +static X86EMU_pioFuncs _BE_pio __section(GOT2_TYPE) = { BE_inb, BE_inw, BE_inl, diff --git a/drivers/clk/kendryte/clk.c b/drivers/clk/kendryte/clk.c index 2d6ac03693a..41c712e03f1 100644 --- a/drivers/clk/kendryte/clk.c +++ b/drivers/clk/kendryte/clk.c @@ -347,7 +347,7 @@ static const struct k210_comp_params k210_comps[] = { #undef COMP_NOMUX_ID #undef COMP_LIST -static struct clk *k210_bypass_children __section(.data); +static struct clk *k210_bypass_children __section(".data"); /* Helper functions to create sub-clocks */ static struct clk_mux *k210_create_mux(const struct k210_mux_params *params, @@ -473,7 +473,7 @@ cleanup_mux: return comp; } -static bool __section(.data) probed; +static bool __section(".data") probed; /* reset probed so we will probe again post-relocation */ static int k210_clk_bind(struct udevice *dev) diff --git a/drivers/core/regmap.c b/drivers/core/regmap.c index b51ce108c14..3206f3d1128 100644 --- a/drivers/core/regmap.c +++ b/drivers/core/regmap.c @@ -435,7 +435,36 @@ int regmap_raw_read(struct regmap *map, uint offset, void *valp, size_t val_len) int regmap_read(struct regmap *map, uint offset, uint *valp) { - return regmap_raw_read(map, offset, valp, map->width); + union { + u8 v8; + u16 v16; + u32 v32; + u64 v64; + } u; + int res; + + res = regmap_raw_read(map, offset, &u, map->width); + if (res) + return res; + + switch (map->width) { + case REGMAP_SIZE_8: + *valp = u.v8; + break; + case REGMAP_SIZE_16: + *valp = u.v16; + break; + case REGMAP_SIZE_32: + *valp = u.v32; + break; + case REGMAP_SIZE_64: + *valp = u.v64; + break; + default: + unreachable(); + } + + return 0; } static inline void __write_8(u8 *addr, const u8 *val, @@ -546,7 +575,33 @@ int regmap_raw_write(struct regmap *map, uint offset, const void *val, int regmap_write(struct regmap *map, uint offset, uint val) { - return regmap_raw_write(map, offset, &val, map->width); + union { + u8 v8; + u16 v16; + u32 v32; + u64 v64; + } u; + + switch (map->width) { + case REGMAP_SIZE_8: + u.v8 = val; + break; + case REGMAP_SIZE_16: + u.v16 = val; + break; + case REGMAP_SIZE_32: + u.v32 = val; + break; + case REGMAP_SIZE_64: + u.v64 = val; + break; + default: + debug("%s: regmap size %zu unknown\n", __func__, + (size_t)map->width); + return -EINVAL; + } + + return regmap_raw_write(map, offset, &u, map->width); } int regmap_update_bits(struct regmap *map, uint offset, uint mask, uint val) diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c index 6755e74e3f8..89cb7d88e5b 100644 --- a/drivers/firmware/psci.c +++ b/drivers/firmware/psci.c @@ -42,7 +42,7 @@ #if CONFIG_IS_ENABLED(EFI_LOADER) int __efi_runtime_data psci_method; #else -int psci_method __attribute__ ((section(".data"))); +int psci_method __section(".data"); #endif unsigned long __efi_runtime invoke_psci_fn diff --git a/drivers/mtd/nand/raw/mxc_nand_spl.c b/drivers/mtd/nand/raw/mxc_nand_spl.c index e1e542519d8..2f054b60ed7 100644 --- a/drivers/mtd/nand/raw/mxc_nand_spl.c +++ b/drivers/mtd/nand/raw/mxc_nand_spl.c @@ -326,7 +326,7 @@ int nand_spl_load_image(uint32_t from, unsigned int size, void *buf) * configured and available since this code loads the main U-Boot image * from NAND into SDRAM and starts it from there. */ -void nand_boot(void) +__used void nand_boot(void) { __attribute__((noreturn)) void (*uboot)(void); diff --git a/drivers/pinctrl/nxp/pinctrl-imx5.c b/drivers/pinctrl/nxp/pinctrl-imx5.c index 71e0c94c96e..b32b748cfc6 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx5.c +++ b/drivers/pinctrl/nxp/pinctrl-imx5.c @@ -10,7 +10,7 @@ #include "pinctrl-imx.h" -static struct imx_pinctrl_soc_info imx5_pinctrl_soc_info __attribute__((section(".data"))); +static struct imx_pinctrl_soc_info imx5_pinctrl_soc_info __section(".data"); static int imx5_pinctrl_probe(struct udevice *dev) { diff --git a/drivers/pinctrl/nxp/pinctrl-imx7.c b/drivers/pinctrl/nxp/pinctrl-imx7.c index 8301413ac7e..77ddb8e0b9d 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx7.c +++ b/drivers/pinctrl/nxp/pinctrl-imx7.c @@ -9,7 +9,7 @@ #include "pinctrl-imx.h" -static struct imx_pinctrl_soc_info imx7_pinctrl_soc_info __attribute__((section(".data"))); +static struct imx_pinctrl_soc_info imx7_pinctrl_soc_info __section(".data"); static struct imx_pinctrl_soc_info imx7_lpsr_pinctrl_soc_info = { .flags = ZERO_OFFSET_VALID, diff --git a/drivers/pinctrl/nxp/pinctrl-imx8m.c b/drivers/pinctrl/nxp/pinctrl-imx8m.c index 99c6d014d6c..6ea66a080b2 100644 --- a/drivers/pinctrl/nxp/pinctrl-imx8m.c +++ b/drivers/pinctrl/nxp/pinctrl-imx8m.c @@ -8,7 +8,7 @@ #include "pinctrl-imx.h" -static struct imx_pinctrl_soc_info imx8mq_pinctrl_soc_info __attribute__((section(".data"))); +static struct imx_pinctrl_soc_info imx8mq_pinctrl_soc_info __section(".data"); static int imx8mq_pinctrl_probe(struct udevice *dev) { diff --git a/drivers/power/pmic/pmic_tps62362.c b/drivers/power/pmic/pmic_tps62362.c index 76fd14db59d..59190d6f672 100644 --- a/drivers/power/pmic/pmic_tps62362.c +++ b/drivers/power/pmic/pmic_tps62362.c @@ -11,7 +11,7 @@ #include <power/tps62362.h> #if CONFIG_IS_ENABLED(DM_I2C) -struct udevice *tps62362_dev __attribute__((section(".data"))) = NULL; +struct udevice *tps62362_dev __section(".data") = NULL; #endif /** diff --git a/drivers/power/pmic/pmic_tps65217.c b/drivers/power/pmic/pmic_tps65217.c index 54b5bed99ad..c7f532df4d5 100644 --- a/drivers/power/pmic/pmic_tps65217.c +++ b/drivers/power/pmic/pmic_tps65217.c @@ -8,7 +8,7 @@ #include <i2c.h> #include <power/tps65217.h> -struct udevice *tps65217_dev __attribute__((section(".data"))) = NULL; +struct udevice *tps65217_dev __section(".data") = NULL; /** * tps65217_reg_read() - Generic function that can read a TPS65217 register diff --git a/drivers/power/pmic/pmic_tps65218.c b/drivers/power/pmic/pmic_tps65218.c index f8bae4545c4..67174901804 100644 --- a/drivers/power/pmic/pmic_tps65218.c +++ b/drivers/power/pmic/pmic_tps65218.c @@ -86,7 +86,7 @@ int tps65218_reg_write(uchar prot_level, uchar dest_reg, uchar dest_val, return 0; } #else -struct udevice *tps65218_dev __attribute__((section(".data"))) = NULL; +struct udevice *tps65218_dev __section(".data") = NULL; int tps65218_reg_read(uchar dest_reg, uchar *dest_val) { diff --git a/drivers/power/pmic/pmic_tps65910.c b/drivers/power/pmic/pmic_tps65910.c index 84a58c28d8f..fcd0a654a88 100644 --- a/drivers/power/pmic/pmic_tps65910.c +++ b/drivers/power/pmic/pmic_tps65910.c @@ -8,7 +8,7 @@ #include <i2c.h> #include <power/tps65910.h> -struct udevice *tps65910_dev __attribute__((section(".data"))) = NULL; +struct udevice *tps65910_dev __section(".data") = NULL; static inline int tps65910_read_reg(int addr, uchar *buf) { diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c index 4f9de0da767..5283d5ed118 100644 --- a/drivers/serial/serial_pl01x.c +++ b/drivers/serial/serial_pl01x.c @@ -30,8 +30,8 @@ DECLARE_GLOBAL_DATA_PTR; #ifndef CONFIG_DM_SERIAL static volatile unsigned char *const port[] = CONFIG_PL01x_PORTS; -static enum pl01x_type pl01x_type __attribute__ ((section(".data"))); -static struct pl01x_regs *base_regs __attribute__ ((section(".data"))); +static enum pl01x_type pl01x_type __section(".data"); +static struct pl01x_regs *base_regs __section(".data"); #define NUM_PORTS (sizeof(port)/sizeof(port[0])) #endif |