| /kernel/linux/linux-5.10/drivers/nvmem/ |
| D | sprd-efuse.c | 39 * The Spreadtrum AP efuse contains 2 parts: normal efuse and secure efuse, 40 * and we can only access the normal efuse in kernel. So define the normal 52 * when reading or writing data to efuse memory, the controller can save double 80 * efuse controller, so we need one hardware spinlock to synchronize between 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 [all …]
|
| D | meson-mx-efuse.c | 3 * Amlogic Meson6, Meson8 and Meson8b eFuse Driver 51 static void meson_mx_efuse_mask_bits(struct meson_mx_efuse *efuse, u32 reg, in meson_mx_efuse_mask_bits() argument 56 data = readl(efuse->base + reg); in meson_mx_efuse_mask_bits() 60 writel(data, efuse->base + reg); in meson_mx_efuse_mask_bits() 63 static int meson_mx_efuse_hw_enable(struct meson_mx_efuse *efuse) in meson_mx_efuse_hw_enable() argument 67 err = clk_prepare_enable(efuse->core_clk); in meson_mx_efuse_hw_enable() 71 /* power up the efuse */ in meson_mx_efuse_hw_enable() 72 meson_mx_efuse_mask_bits(efuse, MESON_MX_EFUSE_CNTL1, in meson_mx_efuse_hw_enable() 75 meson_mx_efuse_mask_bits(efuse, MESON_MX_EFUSE_CNTL4, in meson_mx_efuse_hw_enable() 81 static void meson_mx_efuse_hw_disable(struct meson_mx_efuse *efuse) in meson_mx_efuse_hw_disable() argument [all …]
|
| D | sc27xx-efuse.c | 17 /* Efuse controller registers definition */ 81 * efuse controller, so we need one hardware spinlock to synchronize between 84 static int sc27xx_efuse_lock(struct sc27xx_efuse *efuse) in sc27xx_efuse_lock() argument 88 mutex_lock(&efuse->mutex); in sc27xx_efuse_lock() 90 ret = hwspin_lock_timeout_raw(efuse->hwlock, in sc27xx_efuse_lock() 93 dev_err(efuse->dev, "timeout to get the hwspinlock\n"); in sc27xx_efuse_lock() 94 mutex_unlock(&efuse->mutex); in sc27xx_efuse_lock() 101 static void sc27xx_efuse_unlock(struct sc27xx_efuse *efuse) in sc27xx_efuse_unlock() argument 103 hwspin_unlock_raw(efuse->hwlock); in sc27xx_efuse_unlock() 104 mutex_unlock(&efuse->mutex); in sc27xx_efuse_unlock() [all …]
|
| 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 …]
|
| 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 …]
|
| D | Makefile | 19 nvmem_jz4780_efuse-y := jz4780-efuse.o 26 obj-$(CONFIG_MTK_EFUSE) += nvmem_mtk-efuse.o 27 nvmem_mtk-efuse-y := mtk-efuse.o 33 nvmem_rockchip_efuse-y := rockchip-efuse.o 40 obj-$(CONFIG_UNIPHIER_EFUSE) += nvmem-uniphier-efuse.o 41 nvmem-uniphier-efuse-y := uniphier-efuse.o 45 nvmem_meson_efuse-y := meson-efuse.o 47 nvmem_meson_mx_efuse-y := meson-mx-efuse.o 52 obj-$(CONFIG_SC27XX_EFUSE) += nvmem-sc27xx-efuse.o 53 nvmem-sc27xx-efuse-y := sc27xx-efuse.o [all …]
|
| D | Kconfig | 56 tristate "JZ4780 EFUSE Memory Support" 62 Say Y here to include support for JZ4780 efuse memory found on 100 tristate "Mediatek SoCs EFUSE support" 108 will be called efuse-mtk. 130 tristate "Rockchip eFuse Support" 135 from eFuse, such as cpu-leakage. 184 tristate "UniPhier SoCs eFuse support" 189 from eFuse. 192 will be called nvmem-uniphier-efuse. 206 tristate "Amlogic Meson GX eFuse Support" [all …]
|
| /kernel/linux/linux-4.19/drivers/nvmem/ |
| D | meson-mx-efuse.c | 2 * Amlogic Meson6, Meson8 and Meson8b eFuse Driver 59 static void meson_mx_efuse_mask_bits(struct meson_mx_efuse *efuse, u32 reg, in meson_mx_efuse_mask_bits() argument 64 data = readl(efuse->base + reg); in meson_mx_efuse_mask_bits() 68 writel(data, efuse->base + reg); in meson_mx_efuse_mask_bits() 71 static int meson_mx_efuse_hw_enable(struct meson_mx_efuse *efuse) in meson_mx_efuse_hw_enable() argument 75 err = clk_prepare_enable(efuse->core_clk); in meson_mx_efuse_hw_enable() 79 /* power up the efuse */ in meson_mx_efuse_hw_enable() 80 meson_mx_efuse_mask_bits(efuse, MESON_MX_EFUSE_CNTL1, in meson_mx_efuse_hw_enable() 83 meson_mx_efuse_mask_bits(efuse, MESON_MX_EFUSE_CNTL4, in meson_mx_efuse_hw_enable() 89 static void meson_mx_efuse_hw_disable(struct meson_mx_efuse *efuse) in meson_mx_efuse_hw_disable() argument [all …]
|
| D | sc27xx-efuse.c | 15 /* Efuse controller registers definition */ 62 * efuse controller, so we need one hardware spinlock to synchronize between 65 static int sc27xx_efuse_lock(struct sc27xx_efuse *efuse) in sc27xx_efuse_lock() argument 69 mutex_lock(&efuse->mutex); in sc27xx_efuse_lock() 71 ret = hwspin_lock_timeout_raw(efuse->hwlock, in sc27xx_efuse_lock() 74 dev_err(efuse->dev, "timeout to get the hwspinlock\n"); in sc27xx_efuse_lock() 75 mutex_unlock(&efuse->mutex); in sc27xx_efuse_lock() 82 static void sc27xx_efuse_unlock(struct sc27xx_efuse *efuse) in sc27xx_efuse_unlock() argument 84 hwspin_unlock_raw(efuse->hwlock); in sc27xx_efuse_unlock() 85 mutex_unlock(&efuse->mutex); in sc27xx_efuse_unlock() [all …]
|
| D | rockchip-efuse.c | 2 * Rockchip eFuse Driver 66 struct rockchip_efuse_chip *efuse = context; in rockchip_rk3288_efuse_read() local 70 ret = clk_prepare_enable(efuse->clk); in rockchip_rk3288_efuse_read() 72 dev_err(efuse->dev, "failed to prepare/enable efuse clk\n"); in rockchip_rk3288_efuse_read() 76 writel(RK3288_LOAD | RK3288_PGENB, efuse->base + REG_EFUSE_CTRL); in rockchip_rk3288_efuse_read() 79 writel(readl(efuse->base + REG_EFUSE_CTRL) & in rockchip_rk3288_efuse_read() 81 efuse->base + REG_EFUSE_CTRL); in rockchip_rk3288_efuse_read() 82 writel(readl(efuse->base + REG_EFUSE_CTRL) | in rockchip_rk3288_efuse_read() 84 efuse->base + REG_EFUSE_CTRL); in rockchip_rk3288_efuse_read() 86 writel(readl(efuse->base + REG_EFUSE_CTRL) | in rockchip_rk3288_efuse_read() [all …]
|
| D | Makefile | 22 obj-$(CONFIG_MTK_EFUSE) += nvmem_mtk-efuse.o 23 nvmem_mtk-efuse-y := mtk-efuse.o 27 nvmem_rockchip_efuse-y := rockchip-efuse.o 30 obj-$(CONFIG_UNIPHIER_EFUSE) += nvmem-uniphier-efuse.o 31 nvmem-uniphier-efuse-y := uniphier-efuse.o 35 nvmem_meson_efuse-y := meson-efuse.o 37 nvmem_meson_mx_efuse-y := meson-mx-efuse.o 42 obj-$(CONFIG_SC27XX_EFUSE) += nvmem-sc27xx-efuse.o 43 nvmem-sc27xx-efuse-y := sc27xx-efuse.o
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/nvmem/ |
| D | rockchip-efuse.txt | 1 = Rockchip eFuse device tree bindings = 5 - "rockchip,rk3066a-efuse" - for RK3066a SoCs. 6 - "rockchip,rk3188-efuse" - for RK3188 SoCs. 7 - "rockchip,rk3228-efuse" - for RK3228 SoCs. 8 - "rockchip,rk3288-efuse" - for RK3288 SoCs. 9 - "rockchip,rk3328-efuse" - for RK3328 SoCs. 10 - "rockchip,rk3368-efuse" - for RK3368 SoCs. 11 - "rockchip,rk3399-efuse" - for RK3399 SoCs. 12 - reg: Should contain the registers location and exact eFuse size 13 - clocks: Should be the clock id of eFuse [all …]
|
| D | mtk-efuse.txt | 1 = Mediatek MTK-EFUSE device tree bindings = 3 This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs. 7 "mediatek,mt7622-efuse", "mediatek,efuse": for MT7622 8 "mediatek,mt7623-efuse", "mediatek,efuse": for MT7623 9 "mediatek,mt8173-efuse" or "mediatek,efuse": for MT8173 13 Are child nodes of MTK-EFUSE, bindings of which as described in 18 efuse: efuse@10206000 { 19 compatible = "mediatek,mt8173-efuse";
|
| D | sc27xx-efuse.txt | 1 = Spreadtrum SC27XX PMIC eFuse device tree bindings = 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. 14 Are child nodes of eFuse, bindings of which as described in 29 efuse@380 { 30 compatible = "sprd,sc2731-efuse";
|
| D | amlogic-meson-mx-efuse.txt | 1 Amlogic Meson6/Meson8/Meson8b efuse 5 - "amlogic,meson6-efuse" 6 - "amlogic,meson8-efuse" 7 - "amlogic,meson8b-efuse" 8 - reg: base address and size of the efuse registers 9 - clocks: a reference to the efuse core gate clock 17 efuse: nvmem@0 { 18 compatible = "amlogic,meson8-efuse";
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/nvmem/ |
| D | rockchip-efuse.yaml | 4 $id: http://devicetree.org/schemas/nvmem/rockchip-efuse.yaml# 7 title: Rockchip eFuse device tree bindings 18 - rockchip,rk3066a-efuse 19 - rockchip,rk3188-efuse 20 - rockchip,rk3228-efuse 21 - rockchip,rk3288-efuse 22 - rockchip,rk3328-efuse 23 - rockchip,rk3368-efuse 24 - rockchip,rk3399-efuse 27 - rockchip,rockchip-efuse [all …]
|
| D | mtk-efuse.txt | 1 = Mediatek MTK-EFUSE device tree bindings = 3 This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs. 7 "mediatek,mt7622-efuse", "mediatek,efuse": for MT7622 8 "mediatek,mt7623-efuse", "mediatek,efuse": for MT7623 9 "mediatek,mt8173-efuse" or "mediatek,efuse": for MT8173 13 Are child nodes of MTK-EFUSE, bindings of which as described in 18 efuse: efuse@10206000 { 19 compatible = "mediatek,mt8173-efuse";
|
| D | sc27xx-efuse.txt | 1 = Spreadtrum SC27XX PMIC eFuse device tree bindings = 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. 14 Are child nodes of eFuse, bindings of which as described in 29 efuse@380 { 30 compatible = "sprd,sc2731-efuse";
|
| D | amlogic-meson-mx-efuse.txt | 1 Amlogic Meson6/Meson8/Meson8b efuse 5 - "amlogic,meson6-efuse" 6 - "amlogic,meson8-efuse" 7 - "amlogic,meson8b-efuse" 8 - reg: base address and size of the efuse registers 9 - clocks: a reference to the efuse core gate clock 17 efuse: nvmem@0 { 18 compatible = "amlogic,meson8-efuse";
|
| /kernel/linux/linux-5.10/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 …]
|
| /kernel/linux/linux-4.19/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 …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/fuse/ |
| D | nvidia,tegra20-fuse.txt | 4 - compatible : For Tegra20, must contain "nvidia,tegra20-efuse". For Tegra30, 5 must contain "nvidia,tegra30-efuse". For Tegra114, must contain 6 "nvidia,tegra114-efuse". For Tegra124, must contain "nvidia,tegra124-efuse". 7 For Tegra132 must contain "nvidia,tegra132-efuse", "nvidia,tegra124-efuse". 8 For Tegra210 must contain "nvidia,tegra210-efuse". For Tegra186 must contain 9 "nvidia,tegra186-efuse". For Tegra194 must contain "nvidia,tegra194-efuse". 10 For Tegra234 must contain "nvidia,tegra234-efuse". 12 nvidia,tegra20-efuse: Tegra20 requires using APB DMA to read the fuse data 15 nvidia,tegra30-efuse, nvidia,tegra114-efuse and nvidia,tegra124-efuse: 16 The differences between these SoCs are the size of the efuse array, [all …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/fuse/ |
| D | nvidia,tegra20-fuse.txt | 4 - compatible : For Tegra20, must contain "nvidia,tegra20-efuse". For Tegra30, 5 must contain "nvidia,tegra30-efuse". For Tegra114, must contain 6 "nvidia,tegra114-efuse". For Tegra124, must contain "nvidia,tegra124-efuse". 7 Otherwise, must contain "nvidia,<chip>-efuse", plus one of the above, where 10 nvidia,tegra20-efuse: Tegra20 requires using APB DMA to read the fuse data 13 nvidia,tegra30-efuse, nvidia,tegra114-efuse and nvidia,tegra124-efuse: 14 The differences between these SoCs are the size of the efuse array, 31 compatible = "nvidia,tegra20-efuse";
|
| /kernel/linux/linux-4.19/drivers/cpufreq/ |
| D | ti-cpufreq.c | 48 unsigned long efuse); 66 unsigned long efuse) in amx3_efuse_xlate() argument 68 if (!efuse) in amx3_efuse_xlate() 69 efuse = opp_data->soc_data->efuse_fallback; in amx3_efuse_xlate() 71 return ~efuse; in amx3_efuse_xlate() 75 unsigned long efuse) in dra7_efuse_xlate() argument 80 * The efuse on dra7 and am57 parts contains a specific in dra7_efuse_xlate() 84 switch (efuse) { in dra7_efuse_xlate() 123 * ti_cpufreq_get_efuse() - Parse and return efuse value present on SoC 125 * @efuse_value: Set to the value parsed from efuse [all …]
|
| /kernel/linux/linux-5.10/drivers/cpufreq/ |
| D | ti-cpufreq.c | 49 unsigned long efuse); 67 unsigned long efuse) in amx3_efuse_xlate() argument 69 if (!efuse) in amx3_efuse_xlate() 70 efuse = opp_data->soc_data->efuse_fallback; in amx3_efuse_xlate() 72 return ~efuse; in amx3_efuse_xlate() 76 unsigned long efuse) in dra7_efuse_xlate() argument 81 * The efuse on dra7 and am57 parts contains a specific in dra7_efuse_xlate() 85 switch (efuse) { in dra7_efuse_xlate() 102 unsigned long efuse) in omap3_efuse_xlate() argument 105 return BIT(efuse); in omap3_efuse_xlate() [all …]
|