/Linux-v6.6/drivers/nvmem/ |
D | sprd-efuse.c | 83 static int sprd_efuse_lock(struct sprd_efuse *efuse) in sprd_efuse_lock() argument 87 mutex_lock(&efuse->mutex); in sprd_efuse_lock() 89 ret = hwspin_lock_timeout_raw(efuse->hwlock, in sprd_efuse_lock() 92 dev_err(efuse->dev, "timeout get the hwspinlock\n"); in sprd_efuse_lock() 93 mutex_unlock(&efuse->mutex); in sprd_efuse_lock() 100 static void sprd_efuse_unlock(struct sprd_efuse *efuse) in sprd_efuse_unlock() argument 102 hwspin_unlock_raw(efuse->hwlock); in sprd_efuse_unlock() 103 mutex_unlock(&efuse->mutex); in sprd_efuse_unlock() 106 static void sprd_efuse_set_prog_power(struct sprd_efuse *efuse, bool en) in sprd_efuse_set_prog_power() argument 108 u32 val = readl(efuse->base + SPRD_EFUSE_PW_SWT); in sprd_efuse_set_prog_power() [all …]
|
D | meson-mx-efuse.c | 50 static void meson_mx_efuse_mask_bits(struct meson_mx_efuse *efuse, u32 reg, in meson_mx_efuse_mask_bits() argument 55 data = readl(efuse->base + reg); in meson_mx_efuse_mask_bits() 59 writel(data, efuse->base + reg); in meson_mx_efuse_mask_bits() 62 static int meson_mx_efuse_hw_enable(struct meson_mx_efuse *efuse) in meson_mx_efuse_hw_enable() argument 66 err = clk_prepare_enable(efuse->core_clk); in meson_mx_efuse_hw_enable() 71 meson_mx_efuse_mask_bits(efuse, MESON_MX_EFUSE_CNTL1, in meson_mx_efuse_hw_enable() 74 meson_mx_efuse_mask_bits(efuse, MESON_MX_EFUSE_CNTL4, in meson_mx_efuse_hw_enable() 80 static void meson_mx_efuse_hw_disable(struct meson_mx_efuse *efuse) in meson_mx_efuse_hw_disable() argument 82 meson_mx_efuse_mask_bits(efuse, MESON_MX_EFUSE_CNTL1, in meson_mx_efuse_hw_disable() 86 clk_disable_unprepare(efuse->core_clk); in meson_mx_efuse_hw_disable() [all …]
|
D | sc27xx-efuse.c | 83 static int sc27xx_efuse_lock(struct sc27xx_efuse *efuse) in sc27xx_efuse_lock() argument 87 mutex_lock(&efuse->mutex); in sc27xx_efuse_lock() 89 ret = hwspin_lock_timeout_raw(efuse->hwlock, in sc27xx_efuse_lock() 92 dev_err(efuse->dev, "timeout to get the hwspinlock\n"); in sc27xx_efuse_lock() 93 mutex_unlock(&efuse->mutex); in sc27xx_efuse_lock() 100 static void sc27xx_efuse_unlock(struct sc27xx_efuse *efuse) in sc27xx_efuse_unlock() argument 102 hwspin_unlock_raw(efuse->hwlock); in sc27xx_efuse_unlock() 103 mutex_unlock(&efuse->mutex); in sc27xx_efuse_unlock() 106 static int sc27xx_efuse_poll_status(struct sc27xx_efuse *efuse, u32 bits) in sc27xx_efuse_poll_status() argument 111 ret = regmap_read_poll_timeout(efuse->regmap, in sc27xx_efuse_poll_status() [all …]
|
D | rockchip-efuse.c | 58 struct rockchip_efuse_chip *efuse = context; in rockchip_rk3288_efuse_read() local 62 ret = clk_prepare_enable(efuse->clk); in rockchip_rk3288_efuse_read() 64 dev_err(efuse->dev, "failed to prepare/enable efuse clk\n"); in rockchip_rk3288_efuse_read() 68 writel(RK3288_LOAD | RK3288_PGENB, efuse->base + REG_EFUSE_CTRL); in rockchip_rk3288_efuse_read() 71 writel(readl(efuse->base + REG_EFUSE_CTRL) & in rockchip_rk3288_efuse_read() 73 efuse->base + REG_EFUSE_CTRL); in rockchip_rk3288_efuse_read() 74 writel(readl(efuse->base + REG_EFUSE_CTRL) | in rockchip_rk3288_efuse_read() 76 efuse->base + REG_EFUSE_CTRL); in rockchip_rk3288_efuse_read() 78 writel(readl(efuse->base + REG_EFUSE_CTRL) | in rockchip_rk3288_efuse_read() 79 RK3288_STROBE, efuse->base + REG_EFUSE_CTRL); in rockchip_rk3288_efuse_read() [all …]
|
D | jz4780-efuse.c | 72 struct jz4780_efuse *efuse = context; in jz4780_efuse_read() local 87 regmap_update_bits(efuse->map, JZ_EFUCTRL, in jz4780_efuse_read() 94 ret = regmap_read_poll_timeout(efuse->map, JZ_EFUSTATE, in jz4780_efuse_read() 99 dev_err(efuse->dev, "Time out while reading efuse data"); in jz4780_efuse_read() 103 ret = regmap_bulk_read(efuse->map, JZ_EFUDATA(0), in jz4780_efuse_read() 142 struct jz4780_efuse *efuse; in jz4780_efuse_probe() local 151 efuse = devm_kzalloc(dev, sizeof(*efuse), GFP_KERNEL); in jz4780_efuse_probe() 152 if (!efuse) in jz4780_efuse_probe() 159 efuse->map = devm_regmap_init_mmio(dev, regs, in jz4780_efuse_probe() 161 if (IS_ERR(efuse->map)) in jz4780_efuse_probe() [all …]
|
D | Makefile | 26 nvmem_jz4780_efuse-y := jz4780-efuse.o 36 nvmem_meson_efuse-y := meson-efuse.o 38 nvmem_meson_mx_efuse-y := meson-mx-efuse.o 41 obj-$(CONFIG_NVMEM_MTK_EFUSE) += nvmem_mtk-efuse.o 42 nvmem_mtk-efuse-y := mtk-efuse.o 56 nvmem_rockchip_efuse-y := rockchip-efuse.o 59 obj-$(CONFIG_NVMEM_SC27XX_EFUSE) += nvmem-sc27xx-efuse.o 60 nvmem-sc27xx-efuse-y := sc27xx-efuse.o 66 nvmem_sprd_efuse-y := sprd-efuse.o 76 obj-$(CONFIG_NVMEM_UNIPHIER_EFUSE) += nvmem-uniphier-efuse.o [all …]
|
/Linux-v6.6/drivers/net/wireless/realtek/rtl8xxxu/ |
D | rtl8xxxu_8192c.c | 406 struct rtl8192cu_efuse *efuse = &priv->efuse_wifi.efuse8192; in rtl8192cu_parse_efuse() local 408 if (efuse->rtl_id != cpu_to_le16(0x8129)) in rtl8192cu_parse_efuse() 411 ether_addr_copy(priv->mac_addr, efuse->mac_addr); in rtl8192cu_parse_efuse() 414 efuse->cck_tx_power_index_A, in rtl8192cu_parse_efuse() 415 sizeof(efuse->cck_tx_power_index_A)); in rtl8192cu_parse_efuse() 417 efuse->cck_tx_power_index_B, in rtl8192cu_parse_efuse() 418 sizeof(efuse->cck_tx_power_index_B)); in rtl8192cu_parse_efuse() 421 efuse->ht40_1s_tx_power_index_A, in rtl8192cu_parse_efuse() 422 sizeof(efuse->ht40_1s_tx_power_index_A)); in rtl8192cu_parse_efuse() 424 efuse->ht40_1s_tx_power_index_B, in rtl8192cu_parse_efuse() [all …]
|
D | rtl8xxxu_8723a.c | 183 struct rtl8723au_efuse *efuse = &priv->efuse_wifi.efuse8723; in rtl8723au_parse_efuse() local 185 if (efuse->rtl_id != cpu_to_le16(0x8129)) in rtl8723au_parse_efuse() 188 ether_addr_copy(priv->mac_addr, efuse->mac_addr); in rtl8723au_parse_efuse() 191 efuse->cck_tx_power_index_A, in rtl8723au_parse_efuse() 192 sizeof(efuse->cck_tx_power_index_A)); in rtl8723au_parse_efuse() 194 efuse->cck_tx_power_index_B, in rtl8723au_parse_efuse() 195 sizeof(efuse->cck_tx_power_index_B)); in rtl8723au_parse_efuse() 198 efuse->ht40_1s_tx_power_index_A, in rtl8723au_parse_efuse() 199 sizeof(efuse->ht40_1s_tx_power_index_A)); in rtl8723au_parse_efuse() 201 efuse->ht40_1s_tx_power_index_B, in rtl8723au_parse_efuse() [all …]
|
D | rtl8xxxu_8192e.c | 606 struct rtl8192eu_efuse *efuse = &priv->efuse_wifi.efuse8192eu; in rtl8192eu_parse_efuse() local 609 if (efuse->rtl_id != cpu_to_le16(0x8129)) in rtl8192eu_parse_efuse() 612 ether_addr_copy(priv->mac_addr, efuse->mac_addr); in rtl8192eu_parse_efuse() 614 memcpy(priv->cck_tx_power_index_A, efuse->tx_power_index_A.cck_base, in rtl8192eu_parse_efuse() 615 sizeof(efuse->tx_power_index_A.cck_base)); in rtl8192eu_parse_efuse() 616 memcpy(priv->cck_tx_power_index_B, efuse->tx_power_index_B.cck_base, in rtl8192eu_parse_efuse() 617 sizeof(efuse->tx_power_index_B.cck_base)); in rtl8192eu_parse_efuse() 620 efuse->tx_power_index_A.ht40_base, in rtl8192eu_parse_efuse() 621 sizeof(efuse->tx_power_index_A.ht40_base)); in rtl8192eu_parse_efuse() 623 efuse->tx_power_index_B.ht40_base, in rtl8192eu_parse_efuse() [all …]
|
D | rtl8xxxu_8723b.c | 445 struct rtl8723bu_efuse *efuse = &priv->efuse_wifi.efuse8723bu; in rtl8723bu_parse_efuse() local 448 if (efuse->rtl_id != cpu_to_le16(0x8129)) in rtl8723bu_parse_efuse() 451 ether_addr_copy(priv->mac_addr, efuse->mac_addr); in rtl8723bu_parse_efuse() 453 memcpy(priv->cck_tx_power_index_A, efuse->tx_power_index_A.cck_base, in rtl8723bu_parse_efuse() 454 sizeof(efuse->tx_power_index_A.cck_base)); in rtl8723bu_parse_efuse() 455 memcpy(priv->cck_tx_power_index_B, efuse->tx_power_index_B.cck_base, in rtl8723bu_parse_efuse() 456 sizeof(efuse->tx_power_index_B.cck_base)); in rtl8723bu_parse_efuse() 459 efuse->tx_power_index_A.ht40_base, in rtl8723bu_parse_efuse() 460 sizeof(efuse->tx_power_index_A.ht40_base)); in rtl8723bu_parse_efuse() 462 efuse->tx_power_index_B.ht40_base, in rtl8723bu_parse_efuse() [all …]
|
/Linux-v6.6/Documentation/devicetree/bindings/regulator/ |
D | ti-abb-regulator.txt | 35 efuse: (see Optional properties) 36 RBB enable efuse Mask: (See Optional properties) 37 FBB enable efuse Mask: (See Optional properties) 38 Vset value efuse Mask: (See Optional properties) 47 - "efuse-address" - Contains efuse base address used to pick up ABB info. 49 "efuse-address" is required for this. 55 efuse: Mandatory if 'efuse-address' register is defined. Provides offset 56 from efuse-address to pick up ABB characteristics. Set to 0 if 57 'efuse-address' is not defined. 58 RBB enable efuse Mask: Optional if 'efuse-address' register is defined. [all …]
|
/Linux-v6.6/drivers/phy/mediatek/ |
D | phy-mtk-pcie.c | 77 struct mtk_pcie_lane_efuse *efuse; member 83 struct mtk_pcie_lane_efuse *data = &pcie_phy->efuse[lane]; in mtk_pcie_efuse_set_lane() 136 struct mtk_pcie_lane_efuse *efuse = &pcie_phy->efuse[lane]; in mtk_pcie_efuse_read_for_lane() local 142 ret = nvmem_cell_read_variable_le_u32(dev, efuse_id, &efuse->tx_pmos); in mtk_pcie_efuse_read_for_lane() 147 ret = nvmem_cell_read_variable_le_u32(dev, efuse_id, &efuse->tx_nmos); in mtk_pcie_efuse_read_for_lane() 152 ret = nvmem_cell_read_variable_le_u32(dev, efuse_id, &efuse->rx_data); in mtk_pcie_efuse_read_for_lane() 156 if (!(efuse->tx_pmos || efuse->tx_nmos || efuse->rx_data)) in mtk_pcie_efuse_read_for_lane() 161 efuse->lane_efuse_supported = true; in mtk_pcie_efuse_read_for_lane() 184 pcie_phy->efuse = devm_kzalloc(dev, pcie_phy->data->num_lanes * in mtk_pcie_read_efuse() 185 sizeof(*pcie_phy->efuse), GFP_KERNEL); in mtk_pcie_read_efuse() [all …]
|
/Linux-v6.6/drivers/cpufreq/ |
D | ti-cpufreq.c | 57 unsigned long efuse); 74 unsigned long efuse) in amx3_efuse_xlate() argument 76 if (!efuse) in amx3_efuse_xlate() 77 efuse = opp_data->soc_data->efuse_fallback; in amx3_efuse_xlate() 79 return ~efuse; in amx3_efuse_xlate() 83 unsigned long efuse) in dra7_efuse_xlate() argument 92 switch (efuse) { in dra7_efuse_xlate() 109 unsigned long efuse) in omap3_efuse_xlate() argument 112 return BIT(efuse); in omap3_efuse_xlate() 116 unsigned long efuse) in am625_efuse_xlate() argument [all …]
|
/Linux-v6.6/Documentation/devicetree/bindings/nvmem/ |
D | sc27xx-efuse.txt | 5 "sprd,sc2720-efuse" 6 "sprd,sc2721-efuse" 7 "sprd,sc2723-efuse" 8 "sprd,sc2730-efuse" 9 "sprd,sc2731-efuse" 10 - reg: Specify the address offset of efuse controller. 29 efuse@380 { 30 compatible = "sprd,sc2731-efuse";
|
D | sprd-efuse.txt | 4 - compatible: Should be "sprd,ums312-efuse". 5 - reg: Specify the address offset of efuse controller. 16 ap_efuse: efuse@32240000 { 17 compatible = "sprd,ums312-efuse";
|
/Linux-v6.6/drivers/net/wireless/mediatek/mt76/mt7603/ |
D | eeprom.c | 67 mt7603_has_cal_free_data(struct mt7603_dev *dev, u8 *efuse) in mt7603_has_cal_free_data() argument 69 if (!efuse[MT_EE_TEMP_SENSOR_CAL]) in mt7603_has_cal_free_data() 72 if (get_unaligned_le16(efuse + MT_EE_TX_POWER_0_START_2G) == 0) in mt7603_has_cal_free_data() 75 if (get_unaligned_le16(efuse + MT_EE_TX_POWER_1_START_2G) == 0) in mt7603_has_cal_free_data() 78 if (!efuse[MT_EE_CP_FT_VERSION]) in mt7603_has_cal_free_data() 81 if (!efuse[MT_EE_XTAL_FREQ_OFFSET]) in mt7603_has_cal_free_data() 84 if (!efuse[MT_EE_XTAL_WF_RFCAL]) in mt7603_has_cal_free_data() 91 mt7603_apply_cal_free_data(struct mt7603_dev *dev, u8 *efuse) in mt7603_apply_cal_free_data() argument 112 if (!mt7603_has_cal_free_data(dev, efuse)) in mt7603_apply_cal_free_data() 121 eeprom[offset] = efuse[offset]; in mt7603_apply_cal_free_data()
|
/Linux-v6.6/drivers/net/wireless/realtek/rtw88/ |
D | main.c | 1197 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_update_sta_info() local 1227 if (efuse->hw_cap.nss == 1 || rtwdev->hal.txrx_1ss) in rtw_update_sta_info() 1404 wifi_only = !rtwdev->efuse.btcoex; in rtw_power_on() 1545 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_init_ht_cap() local 1558 if (efuse->hw_cap.bw & BIT(RTW_CHANNEL_WIDTH_40)) in rtw_init_ht_cap() 1565 if (efuse->hw_cap.nss > 1) { in rtw_init_ht_cap() 1581 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_init_vht_cap() local 1585 if (efuse->hw_cap.ptcl != EFUSE_HW_CAP_IGNORE && in rtw_init_vht_cap() 1586 efuse->hw_cap.ptcl != EFUSE_HW_CAP_PTCL_VHT) in rtw_init_vht_cap() 1613 if (efuse->hw_cap.nss > 1) { in rtw_init_vht_cap() [all …]
|
D | efuse.c | 43 u32 physical_size = rtwdev->efuse.physical_size; in rtw_dump_logical_efuse_map() 44 u32 protect_size = rtwdev->efuse.protect_size; in rtw_dump_logical_efuse_map() 45 u32 logical_size = rtwdev->efuse.logical_size; in rtw_dump_logical_efuse_map() 90 u32 size = rtwdev->efuse.physical_size; in rtw_dump_physical_efuse_map() 149 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_parse_efuse_map() local 150 u32 phy_size = efuse->physical_size; in rtw_parse_efuse_map() 151 u32 log_size = efuse->logical_size; in rtw_parse_efuse_map()
|
D | rtw8821c.c | 23 static void rtw8821ce_efuse_parsing(struct rtw_efuse *efuse, in rtw8821ce_efuse_parsing() argument 26 ether_addr_copy(efuse->addr, map->e.mac_addr); in rtw8821ce_efuse_parsing() 29 static void rtw8821cu_efuse_parsing(struct rtw_efuse *efuse, in rtw8821cu_efuse_parsing() argument 32 ether_addr_copy(efuse->addr, map->u.mac_addr); in rtw8821cu_efuse_parsing() 35 static void rtw8821cs_efuse_parsing(struct rtw_efuse *efuse, in rtw8821cs_efuse_parsing() argument 38 ether_addr_copy(efuse->addr, map->s.mac_addr); in rtw8821cs_efuse_parsing() 51 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw8821c_read_efuse() local 57 efuse->rfe_option = map->rfe_option & 0x1f; in rtw8821c_read_efuse() 58 efuse->rf_board_option = map->rf_board_option; in rtw8821c_read_efuse() 59 efuse->crystal_cap = map->xtal_k; in rtw8821c_read_efuse() [all …]
|
D | coex.c | 117 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_coex_freerun_check() local 124 if (efuse->share_ant || ant_distance <= 5 || !coex_stat->wl_gl_busy) in rtw_coex_freerun_check() 809 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_coex_update_wl_ch_info() local 823 (efuse->share_ant && center_chan <= 14 && in rtw_coex_update_wl_ch_info() 984 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_btc_wltoggle_table_a() local 992 if (efuse->share_ant) { in rtw_btc_wltoggle_table_a() 1070 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_coex_table() local 1077 if (efuse->share_ant) { in rtw_coex_table() 1199 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_coex_tdma() local 1235 if (efuse->share_ant) { in rtw_coex_tdma() [all …]
|
D | rtw8822b.c | 23 static void rtw8822be_efuse_parsing(struct rtw_efuse *efuse, in rtw8822be_efuse_parsing() argument 26 ether_addr_copy(efuse->addr, map->e.mac_addr); in rtw8822be_efuse_parsing() 29 static void rtw8822bu_efuse_parsing(struct rtw_efuse *efuse, in rtw8822bu_efuse_parsing() argument 32 ether_addr_copy(efuse->addr, map->u.mac_addr); in rtw8822bu_efuse_parsing() 35 static void rtw8822bs_efuse_parsing(struct rtw_efuse *efuse, in rtw8822bs_efuse_parsing() argument 38 ether_addr_copy(efuse->addr, map->s.mac_addr); in rtw8822bs_efuse_parsing() 43 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw8822b_read_efuse() local 49 efuse->rfe_option = map->rfe_option; in rtw8822b_read_efuse() 50 efuse->rf_board_option = map->rf_board_option; in rtw8822b_read_efuse() 51 efuse->crystal_cap = map->xtal_k; in rtw8822b_read_efuse() [all …]
|
D | phy.h | 118 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_get_rfe_def() local 124 if (efuse->rfe_option < chip->rfe_defs_size) in rtw_get_rfe_def() 125 rfe_def = &chip->rfe_defs[efuse->rfe_option]; in rtw_get_rfe_def() 127 rtw_dbg(rtwdev, RTW_DBG_PHY, "use rfe_def[%d]\n", efuse->rfe_option); in rtw_get_rfe_def() 137 rtwdev->efuse.rfe_option); in rtw_check_supported_rfe()
|
/Linux-v6.6/drivers/net/wireless/mediatek/mt76/mt76x2/ |
D | eeprom.c | 24 mt76x2_has_cal_free_data(struct mt76x02_dev *dev, u8 *efuse) in mt76x2_has_cal_free_data() argument 26 u16 *efuse_w = (u16 *)efuse; in mt76x2_has_cal_free_data() 50 mt76x2_apply_cal_free_data(struct mt76x02_dev *dev, u8 *efuse) in mt76x2_apply_cal_free_data() argument 94 if (!mt76x2_has_cal_free_data(dev, efuse)) in mt76x2_apply_cal_free_data() 100 eeprom[offset] = efuse[offset]; in mt76x2_apply_cal_free_data() 103 if (!(efuse[MT_EE_TX_POWER_0_START_5G] | in mt76x2_apply_cal_free_data() 104 efuse[MT_EE_TX_POWER_0_START_5G + 1])) in mt76x2_apply_cal_free_data() 106 if (!(efuse[MT_EE_TX_POWER_1_START_5G] | in mt76x2_apply_cal_free_data() 107 efuse[MT_EE_TX_POWER_1_START_5G + 1])) in mt76x2_apply_cal_free_data() 110 val = get_unaligned_le16(efuse + MT_EE_BT_RCAL_RESULT); in mt76x2_apply_cal_free_data() [all …]
|
/Linux-v6.6/drivers/soc/mediatek/ |
D | mtk-svs.c | 341 u32 *efuse; member 652 if (svsp->efuse && svsp->efuse[i]) in svs_dump_debug_show() 654 i, svsp->efuse[i]); in svs_dump_debug_show() 1753 if (svsp->efuse[i]) in svs_mt8192_efuse_parsing() 1755 i, svsp->efuse[i]); in svs_mt8192_efuse_parsing() 1757 if (!svsp->efuse[9]) { in svs_mt8192_efuse_parsing() 1763 vmin = (svsp->efuse[19] >> 4) & GENMASK(1, 0); in svs_mt8192_efuse_parsing() 1772 svsb->mtdes = svsp->efuse[10] & GENMASK(7, 0); in svs_mt8192_efuse_parsing() 1773 svsb->bdes = (svsp->efuse[10] >> 16) & GENMASK(7, 0); in svs_mt8192_efuse_parsing() 1774 svsb->mdes = (svsp->efuse[10] >> 24) & GENMASK(7, 0); in svs_mt8192_efuse_parsing() [all …]
|
/Linux-v6.6/Documentation/devicetree/bindings/edac/ |
D | apm-xgene-edac.txt | 18 - regmap-efuse : Regmap of the PMD efuse resource. 66 efuse: efuse@1054a000 { 67 compatible = "apm,xgene-efuse", "syscon"; 84 regmap-efuse = <&efuse>;
|