| /linux/drivers/nvmem/ |
| H A 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 …]
|
| H A 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 …]
|
| H A D | Makefile | 13 obj-$(CONFIG_NVMEM_AN8855_EFUSE) += nvmem-an8855-efuse.o 14 nvmem-an8855-efuse-y := an8855-efuse.o 32 nvmem_jz4780_efuse-y := jz4780-efuse.o 44 nvmem_meson_efuse-y := meson-efuse.o 46 nvmem_meson_mx_efuse-y := meson-mx-efuse.o 49 obj-$(CONFIG_NVMEM_MTK_EFUSE) += nvmem_mtk-efuse.o 50 nvmem_mtk-efuse-y := mtk-efuse.o 63 obj-$(CONFIG_NVMEM_RCAR_EFUSE) += nvmem-rcar-efuse.o 64 nvmem-rcar-efuse-y := rcar-efuse.o 68 nvmem_rockchip_efuse-y := rockchip-efuse.o [all …]
|
| H A D | zynqmp_nvmem.c | 64 struct xilinx_efuse *efuse; in zynqmp_efuse_access() local 98 efuse = dma_alloc_coherent(dev, sizeof(struct xilinx_efuse), in zynqmp_efuse_access() 100 if (!efuse) in zynqmp_efuse_access() 112 efuse->flag = EFUSE_WRITE; in zynqmp_efuse_access() 114 efuse->flag = EFUSE_READ; in zynqmp_efuse_access() 117 efuse->src = dma_buf; in zynqmp_efuse_access() 118 efuse->size = words; in zynqmp_efuse_access() 119 efuse->offset = offset; in zynqmp_efuse_access() 120 efuse->pufuserfuse = pufflag; in zynqmp_efuse_access() 141 efuse, dma_addr); in zynqmp_efuse_access()
|
| /linux/drivers/net/wireless/realtek/rtw88/ |
| H A D | rtw88xxa.c | 34 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw8812a_read_amplifier_type() local 36 efuse->ext_pa_2g = (efuse->pa_type_2g & BIT(5)) && in rtw8812a_read_amplifier_type() 37 (efuse->pa_type_2g & BIT(4)); in rtw8812a_read_amplifier_type() 38 efuse->ext_lna_2g = (efuse->lna_type_2g & BIT(7)) && in rtw8812a_read_amplifier_type() 39 (efuse->lna_type_2g & BIT(3)); in rtw8812a_read_amplifier_type() 41 efuse->ext_pa_5g = (efuse->pa_type_5g & BIT(1)) && in rtw8812a_read_amplifier_type() 42 (efuse->pa_type_5g & BIT(0)); in rtw8812a_read_amplifier_type() 43 efuse->ext_lna_5g = (efuse->lna_type_5g & BIT(7)) && in rtw8812a_read_amplifier_type() 44 (efuse->lna_type_5g & BIT(3)); in rtw8812a_read_amplifier_type() 47 if (efuse->ext_pa_2g) { in rtw8812a_read_amplifier_type() [all …]
|
| H A D | rtw8723x.c | 74 # name "=0x%x\n", rtwdev->efuse.name) 226 static void rtw8723xe_efuse_parsing(struct rtw_efuse *efuse, in rtw8723xe_efuse_parsing() argument 229 ether_addr_copy(efuse->addr, map->e.mac_addr); in rtw8723xe_efuse_parsing() 232 static void rtw8723xu_efuse_parsing(struct rtw_efuse *efuse, in rtw8723xu_efuse_parsing() argument 235 ether_addr_copy(efuse->addr, map->u.mac_addr); in rtw8723xu_efuse_parsing() 238 static void rtw8723xs_efuse_parsing(struct rtw_efuse *efuse, in rtw8723xs_efuse_parsing() argument 241 ether_addr_copy(efuse->addr, map->s.mac_addr); in rtw8723xs_efuse_parsing() 255 struct rtw_efuse *efuse = &rtwdev->efuse; in __rtw8723x_read_efuse() local 256 u8 *pwr = (u8 *)efuse->txpwr_idx_table; in __rtw8723x_read_efuse() 264 efuse->rfe_option = 0; in __rtw8723x_read_efuse() [all …]
|
| H A D | main.c | 1217 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_update_sta_info() local 1248 if (efuse->hw_cap.nss == 1 || rtwdev->hal.txrx_1ss) in rtw_update_sta_info() 1250 else if (efuse->hw_cap.nss == 2) in rtw_update_sta_info() 1313 tx_num = efuse->hw_cap.nss; in rtw_update_sta_info() 1431 wifi_only = !rtwdev->efuse.btcoex; in rtw_power_on() 1574 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_init_ht_cap() local 1588 if (efuse->hw_cap.bw & BIT(RTW_CHANNEL_WIDTH_40)) in rtw_init_ht_cap() 1596 for (i = 0; i < efuse->hw_cap.nss; i++) in rtw_init_ht_cap() 1599 ht_cap->mcs.rx_highest = cpu_to_le16(150 * efuse->hw_cap.nss); in rtw_init_ht_cap() 1605 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_init_vht_cap() local [all …]
|
| H A 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 …]
|
| H A 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()
|
| H A D | rtw8814a.c | 34 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw8814a_read_rfe_type() local 36 if (!(efuse->rfe_option & BIT(7))) in rtw8814a_read_rfe_type() 40 efuse->rfe_option = 0; in rtw8814a_read_rfe_type() 42 efuse->rfe_option = 1; in rtw8814a_read_rfe_type() 47 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw8814a_read_amplifier_type() local 49 switch (efuse->rfe_option) { in rtw8814a_read_amplifier_type() 52 efuse->pa_type_2g = 0; in rtw8814a_read_amplifier_type() 53 efuse->lna_type_2g = 0; in rtw8814a_read_amplifier_type() 55 efuse->pa_type_5g = BIT(0); in rtw8814a_read_amplifier_type() 56 efuse->lna_type_5g = BIT(3); in rtw8814a_read_amplifier_type() [all …]
|
| H A 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() 827 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_coex_update_wl_ch_info() local 841 (efuse->share_ant && center_chan <= 14 && in rtw_coex_update_wl_ch_info() 1008 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_btc_wltoggle_table_a() local 1016 if (efuse->share_ant) { in rtw_btc_wltoggle_table_a() 1094 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_coex_table() local 1101 if (efuse->share_ant) { in rtw_coex_table() 1223 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_coex_tdma() local 1259 if (efuse->share_ant) { in rtw_coex_tdma() [all …]
|
| H A 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->usb_mode_switch = u8_get_bits(map->usb_mode, BIT(7)); in rtw8822b_read_efuse() 50 efuse->rfe_option = map->rfe_option; in rtw8822b_read_efuse() 51 efuse->rf_board_option = map->rf_board_option; in rtw8822b_read_efuse() [all …]
|
| H A D | phy.h | 122 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_get_rfe_def() local 128 if (efuse->rfe_option < chip->rfe_defs_size) in rtw_get_rfe_def() 129 rfe_def = &chip->rfe_defs[efuse->rfe_option]; in rtw_get_rfe_def() 131 rtw_dbg(rtwdev, RTW_DBG_PHY, "use rfe_def[%d]\n", efuse->rfe_option); in rtw_get_rfe_def() 141 rtwdev->efuse.rfe_option); in rtw_check_supported_rfe()
|
| H A D | rtw8821a.c | 390 const struct rtw_efuse *efuse = &rtwdev->efuse; in rtw8821a_iqk() local 407 hal->current_band_width, efuse->ext_pa_2g, efuse->ext_pa_5g); in rtw8821a_iqk() 457 if (efuse->ext_pa_5g) in rtw8821a_iqk() 521 if (efuse->ext_pa_5g) in rtw8821a_iqk() 749 if (rtwdev->efuse.share_ant) in rtw8821a_coex_cfg_init() 763 bool share_ant = rtwdev->efuse.share_ant; in rtw8821a_coex_cfg_ant_switch() 768 if (!rtwdev->efuse.btcoex) in rtw8821a_coex_cfg_ant_switch() 844 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw8821a_coex_cfg_wl_tx_power() local 845 bool share_ant = efuse->share_ant; in rtw8821a_coex_cfg_wl_tx_power()
|
| H A D | regd.c | 284 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_regd_apply_hw_cap_flags() local 287 if (efuse->hw_cap.bw & BIT(RTW_CHANNEL_WIDTH_80)) in rtw_regd_apply_hw_cap_flags() 346 chip_reg = rtw_reg_find_by_name(rtwdev->efuse.country_code); in rtw_regd_init() 380 rtwdev->efuse.country_code[0], in rtw_regd_hint() 381 rtwdev->efuse.country_code[1]); in rtw_regd_hint() 383 ret = regulatory_hint(wiphy, rtwdev->efuse.country_code); in rtw_regd_hint() 416 rtw_reg_match(next_regd->regulatory, rtwdev->efuse.country_code)) { in rtw_regd_mgmt_programmed()
|
| /linux/Documentation/devicetree/bindings/regulator/ |
| H A 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/drivers/phy/mediatek/ |
| H A 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/drivers/net/wireless/realtek/rtlwifi/rtl8192d/ |
| H A D | hw_common.c | 366 u8 *efuse, bool autoloadfail) in _rtl92d_readpowervalue_fromprom() argument 411 efuse[eeaddr] == 0xFF ? in _rtl92d_readpowervalue_fromprom() 415 efuse[eeaddr]; in _rtl92d_readpowervalue_fromprom() 426 efuse[eeaddr] == 0xFF ? in _rtl92d_readpowervalue_fromprom() 430 efuse[eeaddr]; in _rtl92d_readpowervalue_fromprom() 441 val8 = efuse[EEPROM_HT40_2S_TX_PWR_INX_DIFF_2G + offset]; in _rtl92d_readpowervalue_fromprom() 449 val8 = efuse[EEPROM_HT20_TX_PWR_INX_DIFF_2G + offset]; in _rtl92d_readpowervalue_fromprom() 457 val8 = efuse[EEPROM_OFDM_TX_PWR_INX_DIFF_2G + offset]; in _rtl92d_readpowervalue_fromprom() 465 val8 = efuse[EEPROM_HT40_MAX_PWR_OFFSET_2G + offset]; in _rtl92d_readpowervalue_fromprom() 473 val8 = efuse[EEPROM_HT20_MAX_PWR_OFFSET_2G + offset]; in _rtl92d_readpowervalue_fromprom() [all …]
|
| /linux/drivers/net/wireless/realtek/rtl8xxxu/ |
| H A D | 8192e.c | 590 struct rtl8192eu_efuse *efuse = &priv->efuse_wifi.efuse8192eu; in rtl8192eu_parse_efuse() local 593 if (efuse->rtl_id != cpu_to_le16(0x8129)) in rtl8192eu_parse_efuse() 596 ether_addr_copy(priv->mac_addr, efuse->mac_addr); in rtl8192eu_parse_efuse() 598 memcpy(priv->cck_tx_power_index_A, efuse->tx_power_index_A.cck_base, in rtl8192eu_parse_efuse() 599 sizeof(efuse->tx_power_index_A.cck_base)); in rtl8192eu_parse_efuse() 600 memcpy(priv->cck_tx_power_index_B, efuse->tx_power_index_B.cck_base, in rtl8192eu_parse_efuse() 601 sizeof(efuse->tx_power_index_B.cck_base)); in rtl8192eu_parse_efuse() 604 efuse->tx_power_index_A.ht40_base, in rtl8192eu_parse_efuse() 605 sizeof(efuse->tx_power_index_A.ht40_base)); in rtl8192eu_parse_efuse() 607 efuse->tx_power_index_B.ht40_base, in rtl8192eu_parse_efuse() [all …]
|
| H A D | 8723b.c | 429 struct rtl8723bu_efuse *efuse = &priv->efuse_wifi.efuse8723bu; in rtl8723bu_parse_efuse() local 432 if (efuse->rtl_id != cpu_to_le16(0x8129)) in rtl8723bu_parse_efuse() 435 ether_addr_copy(priv->mac_addr, efuse->mac_addr); in rtl8723bu_parse_efuse() 437 memcpy(priv->cck_tx_power_index_A, efuse->tx_power_index_A.cck_base, in rtl8723bu_parse_efuse() 438 sizeof(efuse->tx_power_index_A.cck_base)); in rtl8723bu_parse_efuse() 439 memcpy(priv->cck_tx_power_index_B, efuse->tx_power_index_B.cck_base, in rtl8723bu_parse_efuse() 440 sizeof(efuse->tx_power_index_B.cck_base)); in rtl8723bu_parse_efuse() 443 efuse->tx_power_index_A.ht40_base, in rtl8723bu_parse_efuse() 444 sizeof(efuse->tx_power_index_A.ht40_base)); in rtl8723bu_parse_efuse() 446 efuse->tx_power_index_B.ht40_base, in rtl8723bu_parse_efuse() [all …]
|
| H A D | 8192f.c | 684 struct rtl8192fu_efuse *efuse = &priv->efuse_wifi.efuse8192fu; in rtl8192fu_parse_efuse() local 687 if (efuse->rtl_id != cpu_to_le16(0x8129)) in rtl8192fu_parse_efuse() 690 ether_addr_copy(priv->mac_addr, efuse->mac_addr); in rtl8192fu_parse_efuse() 692 memcpy(priv->cck_tx_power_index_A, efuse->tx_power_index_A.cck_base, in rtl8192fu_parse_efuse() 693 sizeof(efuse->tx_power_index_A.cck_base)); in rtl8192fu_parse_efuse() 694 memcpy(priv->cck_tx_power_index_B, efuse->tx_power_index_B.cck_base, in rtl8192fu_parse_efuse() 695 sizeof(efuse->tx_power_index_B.cck_base)); in rtl8192fu_parse_efuse() 698 efuse->tx_power_index_A.ht40_base, in rtl8192fu_parse_efuse() 699 sizeof(efuse->tx_power_index_A.ht40_base)); in rtl8192fu_parse_efuse() 701 efuse->tx_power_index_B.ht40_base, in rtl8192fu_parse_efuse() [all …]
|
| /linux/arch/arm/boot/dts/ti/omap/ |
| H A D | omap4460.dtsi | 48 "efuse-address"; 51 /*uV ABB efuse rbb_m fbb_m vset_m*/ 66 "efuse-address"; 69 /*uV ABB efuse rbb_m fbb_m vset_m*/
|
| /linux/arch/arm/boot/dts/aspeed/ |
| H A D | aspeed-bmc-delta-ahe50dc.dts | 8 efuse##n { \ 10 vout-supply = <&efuse##n>; \ 16 efuse@##hexaddr { \ 21 efuse##num: vout { \ 22 regulator-name = __stringify(efuse##num##-reg); \
|
| /linux/Documentation/ABI/testing/ |
| H A D | sysfs-driver-jz4780-efuse | 4 Description: read-only access to the efuse on the Ingenic JZ4780 SoC 5 The SoC has a one time programmable 8K efuse that is
|
| /linux/arch/arm/boot/dts/socionext/ |
| H A D | uniphier-pro5.dtsi | 394 efuse@100 { 395 compatible = "socionext,uniphier-efuse"; 399 efuse@130 { 400 compatible = "socionext,uniphier-efuse"; 404 efuse@200 { 405 compatible = "socionext,uniphier-efuse"; 409 efuse@300 { 410 compatible = "socionext,uniphier-efuse"; 414 efuse@400 { 415 compatible = "socionext,uniphier-efuse";
|