| /linux/drivers/nvmem/ |
| H A D | rockchip-efuse.c | 3 * Rockchip eFuse Driver 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() [all …]
|
| H A D | jz4780-efuse.c | 3 * JZ4780 EFUSE Memory Support driver 10 * Currently supports JZ4780 efuse which has 8K programmable bit. 11 * Efuse is separated into seven segments as below: 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() 119 .name = "jz4780-efuse", 142 struct jz4780_efuse *efuse; in jz4780_efuse_probe() local [all …]
|
| H A D | zynqmp_nvmem.c | 32 * efuse access type 44 * @flag: 0 - represents efuse read and 1- represents efuse write 49 * read/write efuse memory. 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() [all …]
|
| H A D | an8855-efuse.c | 3 * Airoha AN8855 Switch EFUSE Driver 28 .name = "an8855-efuse", in an8855_efuse_probe() 51 { .compatible = "airoha,an8855-efuse", }, 59 .name = "an8855-efuse", 66 MODULE_DESCRIPTION("Driver for AN8855 Switch EFUSE");
|
| H A D | mtk-efuse.c | 112 { .compatible = "mediatek,mt8173-efuse", .data = &mtk_efuse_pdata }, 113 { .compatible = "mediatek,mt8186-efuse", .data = &mtk_mt8186_efuse_pdata }, 114 { .compatible = "mediatek,efuse", .data = &mtk_efuse_pdata }, 131 .name = "mediatek,efuse", 142 pr_err("Failed to register efuse driver\n"); in mtk_efuse_init() 158 MODULE_DESCRIPTION("Mediatek EFUSE driver");
|
| /linux/arch/arm/boot/dts/aspeed/ |
| H A D | aspeed-bmc-delta-ahe50dc.dts | 8 efuse##n { \ 10 vout-supply = <&efuse##n>; \ 15 #define EFUSE(hexaddr, num) \ macro 16 efuse@##hexaddr { \ 21 efuse##num: vout { \ 22 regulator-name = __stringify(efuse##num##-reg); \ 166 EFUSE(10, 03); 167 EFUSE(11, 04); 168 EFUSE(12, 01); 169 EFUSE(13, 02); [all …]
|
| /linux/Documentation/devicetree/bindings/nvmem/ |
| H A D | rockchip-efuse.yaml | 4 $id: http://devicetree.org/schemas/nvmem/rockchip-efuse.yaml# 7 title: Rockchip eFuse 19 - rockchip,rk3066a-efuse 20 - rockchip,rk3188-efuse 21 - rockchip,rk3228-efuse 22 - rockchip,rk3288-efuse 23 - rockchip,rk3328-efuse 24 - rockchip,rk3368-efuse 25 - rockchip,rk3399-efuse 28 - rockchip,rockchip-efuse [all …]
|
| H A D | amlogic,meson6-efuse.yaml | 4 $id: http://devicetree.org/schemas/nvmem/amlogic,meson6-efuse.yaml# 7 title: Amlogic Meson6 eFuse 20 - amlogic,meson6-efuse 21 - amlogic,meson8-efuse 22 - amlogic,meson8b-efuse 43 efuse: efuse@0 { 44 compatible = "amlogic,meson6-efuse";
|
| H A D | amlogic,meson-gxbb-efuse.yaml | 4 $id: http://devicetree.org/schemas/nvmem/amlogic,meson-gxbb-efuse.yaml# 7 title: Amlogic Meson GX eFuse 19 - const: amlogic,meson-gxbb-efuse 21 - const: amlogic,meson-gx-efuse 22 - const: amlogic,meson-gxbb-efuse 43 efuse: efuse { 44 compatible = "amlogic,meson-gxbb-efuse";
|
| H A D | ingenic,jz4780-efuse.yaml | 4 $id: http://devicetree.org/schemas/nvmem/ingenic,jz4780-efuse.yaml# 7 title: Ingenic JZ EFUSE driver 18 - ingenic,jz4780-efuse 24 # Handle for the ahb for the efuse. 38 efuse@134100d0 { 39 compatible = "ingenic,jz4780-efuse";
|
| H A D | socionext,uniphier-efuse.yaml | 4 $id: http://devicetree.org/schemas/nvmem/socionext,uniphier-efuse.yaml# 7 title: Socionext UniPhier eFuse 19 const: socionext,uniphier-efuse 32 efuse@100 { 33 compatible = "socionext,uniphier-efuse"; 37 efuse@200 { 38 compatible = "socionext,uniphier-efuse";
|
| /linux/Documentation/devicetree/bindings/fuse/ |
| H A D | nvidia,tegra20-fuse.yaml | 17 - nvidia,tegra20-efuse 18 - nvidia,tegra30-efuse 19 - nvidia,tegra114-efuse 20 - nvidia,tegra124-efuse 21 - nvidia,tegra210-efuse 22 - nvidia,tegra186-efuse 23 - nvidia,tegra194-efuse 24 - nvidia,tegra234-efuse 27 - const: nvidia,tegra132-efuse 28 - const: nvidia,tegra124-efuse [all …]
|
| /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/net/wireless/realtek/rtw88/ |
| H A D | rtw88xxa.c | 15 #include "efuse.h" 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() [all …]
|
| H A D | rtw8723x.c | 73 rtw_dbg(rtwdev, RTW_DBG_EFUSE, "Fixed invalid EFUSE value: " \ 74 # name "=0x%x\n", rtwdev->efuse.name) 185 rtw_dbg(rtwdev, RTW_DBG_EFUSE, "EFUSE raw logical map:\n"); in efuse_debug_dump() 188 rtw_dbg(rtwdev, RTW_DBG_EFUSE, "Parsed rtw8723x EFUSE data:\n"); in efuse_debug_dump() 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() [all …]
|
| H A D | efuse.c | 8 #include "efuse.h" 31 /* efuse header format 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() 165 rtw_err(rtwdev, "failed to dump efuse physical map\n"); in rtw_parse_efuse_map() [all …]
|
| H A D | rtw8814a.c | 15 #include "efuse.h" 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() [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 | 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 …]
|
| /linux/drivers/phy/mediatek/ |
| H A D | phy-mtk-pcie.c | 36 * struct mtk_pcie_lane_efuse - eFuse data for each lane 40 * @lane_efuse_supported: software eFuse data is supported for this lane 52 * @sw_efuse_supported: support software to load eFuse data 65 * @sw_efuse_en: software eFuse enable status 67 * @efuse: pointer to eFuse data for each lane 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() 106 * Initialize the phy by setting the efuse data. 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() [all …]
|
| /linux/drivers/net/wireless/realtek/rtw89/ |
| H A D | efuse_be.c | 6 #include "efuse.h" 82 rtw89_err(rtwdev, "Efuse addr 0x%x or size 0x%x not aligned\n", in rtw89_dump_physical_efuse_map_ddv_be() 139 rtw89_warn(rtwdev, "failed to read dav efuse\n"); in rtw89_dump_physical_efuse_map_dav_be() 167 rtw89_warn(rtwdev, "failed to convert efuse state\n"); in rtw89_cnv_efuse_state_be() 280 rtw89_err(rtwdev, "[ERR]efuse idx:0x%X\n", phy_idx - 3); in rtw89_eeprom_parser_be() 332 rtw89_warn(rtwdev, "failed to dump efuse logical block %d\n", block); in rtw89_parse_logical_efuse_block_be() 340 rtw89_warn(rtwdev, "failed to read efuse map\n"); in rtw89_parse_logical_efuse_block_be() 360 rtwdev->efuse.valid = true; in rtw89_parse_efuse_map_be() 362 rtw89_warn(rtwdev, "failed to check efuse autoload\n"); in rtw89_parse_efuse_map_be() 375 rtw89_warn(rtwdev, "failed to dump efuse physical map\n"); in rtw89_parse_efuse_map_be() [all …]
|
| /linux/Documentation/devicetree/bindings/opp/ |
| H A D | ti,omap-opp-supply.yaml | 10 OMAP5, DRA7, and AM57 families of SoCs have Class 0 AVS eFuse 37 - description: OMAP5+ optimized voltages in efuse(Class 0) VDD along with 40 - description: OMAP5+ optimized voltages in efuse(class0) VDD but no VBB 52 ti,efuse-settings: 54 optimized efuse configuration. 63 - description: efuse offset where the optimized voltage is located 81 - ti,efuse-settings 95 ti,efuse-settings =
|
| /linux/drivers/net/wireless/mediatek/mt76/mt7603/ |
| H A 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/drivers/opp/ |
| H A D | ti-opp-supply.c | 28 * @optimized_uv: Optimized voltage from efuse 56 * @efuse_voltage_mask: mask required for efuse register representing voltage 57 * @efuse_voltage_uv: Are the efuse entries in micro-volts? if not, assume 73 * Picks up efuse based optimized voltages for VDD unique per device and 90 /* pick up Efuse based voltages */ in _store_optimized_voltages() 100 dev_err(dev, "Unable to map Efuse registers\n"); in _store_optimized_voltages() 105 /* Fetch efuse-settings. */ in _store_optimized_voltages() 106 prop = of_find_property(dev->of_node, "ti,efuse-settings", NULL); in _store_optimized_voltages() 108 dev_err(dev, "No 'ti,efuse-settings' property found\n"); in _store_optimized_voltages() 117 dev_err(dev, "Invalid 'ti,efuse-settings'\n"); in _store_optimized_voltages() [all …]
|
| /linux/Documentation/devicetree/bindings/soc/socionext/ |
| H A D | socionext,uniphier-soc-glue-debug.yaml | 45 "^efuse@[0-9a-f]+$": 46 $ref: /schemas/nvmem/socionext,uniphier-efuse.yaml# 64 efuse@100 { 65 compatible = "socionext,uniphier-efuse";
|