arm-trusted-firmware/drivers/marvell
Marek Behún 95c26d6489 fix(drivers/marvell/comphy): change reg_set() / reg_set16() to update semantics
Currently reg_set() and reg_set16() are implemented via
mmio_clrsetbits_32(), meaning that first bits from mask are cleared,
then data bits are set.

But these function are used everywhere according to update semantics,
where only those bits that are in mask are allowed to be changed.

Example from phy-comphy-cp110.c
  mask = HPIPE_RST_CLK_CTRL_PIPE_RST_MASK;
  data = 0x1 << HPIPE_RST_CLK_CTRL_PIPE_RST_OFFSET;
  /* Set PHY datapath width mode for V0 */
  mask |= HPIPE_RST_CLK_CTRL_FIXED_PCLK_MASK;
  data |= 0x0 << HPIPE_RST_CLK_CTRL_FIXED_PCLK_OFFSET;
  /* Set Data bus width USB mode for V0 */
  mask |= HPIPE_RST_CLK_CTRL_PIPE_WIDTH_MASK;
  data |= 0x0 << HPIPE_RST_CLK_CTRL_PIPE_WIDTH_OFFSET;
  /* Set CORE_CLK output frequency for 250Mhz */
  mask |= HPIPE_RST_CLK_CTRL_CORE_FREQ_SEL_MASK;
  data |= 0x0 << HPIPE_RST_CLK_CTRL_CORE_FREQ_SEL_OFFSET;
  reg_set(hpipe_addr + HPIPE_RST_CLK_CTRL_REG, data, mask);

Change the implementation to update semantics by anding data with mask.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Change-Id: Ic72a8f64916274e08baef0b3f4c44a4fa07c1a6c
2021-12-09 01:29:07 +01:00
..
comphy fix(drivers/marvell/comphy): change reg_set() / reg_set16() to update semantics 2021-12-09 01:29:07 +01:00
mc_trustzone fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
mg_conf_cm3 drivers: marvell: mg_conf_cm3: pass comphy lane number to AP FW 2020-07-10 10:55:09 +00:00
mochi drivers/marvell: check if TRNG unit is present 2021-04-20 13:00:16 +02:00
secure_dfx_access drivers: marvell: misc-dfx: extend dfx whitelist 2021-04-20 12:59:45 +02:00
uart fix(plat/marvell/a3720/uart): do external reset during initialization 2021-12-02 17:38:02 +01:00
amb_adec.c fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
ap807_clocks_init.c ble: ap807: improve PLL configuration sequence 2020-06-07 00:06:03 +02:00
cache_llc.c drivers: marvell: Fix the LLC SRAM driver 2020-07-10 10:55:33 +00:00
ccu.c fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
comphy.h Standardise header guards across codebase 2018-11-08 10:20:19 +00:00
ddr_phy_access.c ddr_phy: use smc calls to access ddr phy registers 2021-04-20 12:59:34 +02:00
ddr_phy_access.h ddr_phy: use smc calls to access ddr phy registers 2021-04-20 12:59:34 +02:00
gwin.c fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
io_win.c fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
iob.c fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
mci.c plat: marvell: mci: perform mci link tuning for all mci interfaces 2020-06-07 00:06:03 +02:00
thermal.c Sanitise includes across codebase 2019-01-04 10:43:17 +00:00