Home
last modified time | relevance | path

Searched full:otp (Results 1 – 25 of 405) sorted by relevance

12345678910>>...17

/kernel/linux/linux-5.10/drivers/nvmem/
Drockchip-otp.c3 * Rockchip OTP Driver
22 /* OTP Register Offsets */
35 /* OTP Register bits and masks */
67 "otp", "apb_pclk", "phy",
74 static int rockchip_otp_reset(struct rockchip_otp *otp) in rockchip_otp_reset() argument
78 ret = reset_control_assert(otp->rst); in rockchip_otp_reset()
80 dev_err(otp->dev, "failed to assert otp phy %d\n", ret); in rockchip_otp_reset()
86 ret = reset_control_deassert(otp->rst); in rockchip_otp_reset()
88 dev_err(otp->dev, "failed to deassert otp phy %d\n", ret); in rockchip_otp_reset()
95 static int rockchip_otp_wait_status(struct rockchip_otp *otp, u32 flag) in rockchip_otp_wait_status() argument
[all …]
Dmxs-ocotp.c3 * Freescale MXS On-Chip OTP driver
36 static int mxs_ocotp_wait(struct mxs_ocotp *otp) in mxs_ocotp_wait() argument
42 status = readl(otp->base); in mxs_ocotp_wait()
61 struct mxs_ocotp *otp = context; in mxs_ocotp_read() local
65 ret = clk_enable(otp->clk); in mxs_ocotp_read()
69 writel(BM_OCOTP_CTRL_ERROR, otp->base + STMP_OFFSET_REG_CLR); in mxs_ocotp_read()
71 ret = mxs_ocotp_wait(otp); in mxs_ocotp_read()
76 writel(BM_OCOTP_CTRL_RD_BANK_OPEN, otp->base + STMP_OFFSET_REG_SET); in mxs_ocotp_read()
81 ret = mxs_ocotp_wait(otp); in mxs_ocotp_read()
90 *buf++ = readl(otp->base + offset); in mxs_ocotp_read()
[all …]
Dlpc18xx_otp.c3 * NXP LPC18xx/43xx OTP memory NVMEM driver
10 * TODO: add support for writing OTP register via API in boot ROM.
22 * LPC18xx OTP memory contains 4 banks with 4 32-bit words. Bank 0 starts
44 struct lpc18xx_otp *otp = context; in lpc18xx_otp_read() local
54 *buf++ = readl(otp->base + i * LPC18XX_OTP_WORD_SIZE); in lpc18xx_otp_read()
60 .name = "lpc18xx-otp",
70 struct lpc18xx_otp *otp; in lpc18xx_otp_probe() local
73 otp = devm_kzalloc(&pdev->dev, sizeof(*otp), GFP_KERNEL); in lpc18xx_otp_probe()
74 if (!otp) in lpc18xx_otp_probe()
78 otp->base = devm_ioremap_resource(&pdev->dev, res); in lpc18xx_otp_probe()
[all …]
DKconfig36 tristate "i.MX 6/7/8 On-Chip OTP Controller support"
40 This is a driver for the On-Chip OTP Controller (OCOTP) available on
48 tristate "i.MX8 SCU On-Chip OTP Controller support"
52 This is a driver for the SCU On-Chip OTP Controller (OCOTP)
78 tristate "NXP LPC18XX OTP Memory Support"
82 Say Y here to include support for NXP LPC18xx OTP memory found on
88 tristate "Freescale MXS On-Chip OTP Memory Support"
141 tristate "Rockchip OTP controller support"
146 from otp, such as cpu-leakage.
152 tristate "Broadcom On-Chip OTP Controller support"
[all …]
/kernel/linux/linux-6.6/drivers/nvmem/
Drockchip-otp.c3 * Rockchip OTP Driver
22 /* OTP Register Offsets */
35 /* OTP Register bits and masks */
85 static int rockchip_otp_reset(struct rockchip_otp *otp) in rockchip_otp_reset() argument
89 ret = reset_control_assert(otp->rst); in rockchip_otp_reset()
91 dev_err(otp->dev, "failed to assert otp phy %d\n", ret); in rockchip_otp_reset()
97 ret = reset_control_deassert(otp->rst); in rockchip_otp_reset()
99 dev_err(otp->dev, "failed to deassert otp phy %d\n", ret); in rockchip_otp_reset()
106 static int rockchip_otp_wait_status(struct rockchip_otp *otp, in rockchip_otp_wait_status() argument
112 ret = readl_poll_timeout_atomic(otp->base + reg, status, in rockchip_otp_wait_status()
[all …]
Dlan9662-otpc.c47 static int lan9662_otp_power(struct lan9662_otp *otp, bool up) in lan9662_otp_power() argument
49 void __iomem *pwrdn = OTP_OTP_PWR_DN(otp->base); in lan9662_otp_power()
53 if (lan9662_otp_wait_flag_clear(OTP_OTP_STATUS(otp->base), in lan9662_otp_power()
63 static int lan9662_otp_execute(struct lan9662_otp *otp) in lan9662_otp_execute() argument
65 if (lan9662_otp_wait_flag_clear(OTP_OTP_CMD_GO(otp->base), in lan9662_otp_execute()
69 if (lan9662_otp_wait_flag_clear(OTP_OTP_STATUS(otp->base), in lan9662_otp_execute()
76 static void lan9662_otp_set_address(struct lan9662_otp *otp, u32 offset) in lan9662_otp_set_address() argument
78 writel(0xff & (offset >> 8), OTP_OTP_ADDR_HI(otp->base)); in lan9662_otp_set_address()
79 writel(0xff & offset, OTP_OTP_ADDR_LO(otp->base)); in lan9662_otp_set_address()
82 static int lan9662_otp_read_byte(struct lan9662_otp *otp, u32 offset, u8 *dst) in lan9662_otp_read_byte() argument
[all …]
Dsunplus-ocotp.c21 * OTP memory
78 static int sp_otp_read_real(struct sp_ocotp_priv *otp, int addr, char *value) in sp_otp_read_real() argument
94 writel(readl(otp->base[OTPRX] + OTP_STATUS) & OTP_READ_DONE_MASK & in sp_otp_read_real()
95 OTP_LOAD_SECURE_DONE_MASK, otp->base[OTPRX] + OTP_STATUS); in sp_otp_read_real()
96 writel(addr, otp->base[OTPRX] + OTP_READ_ADDRESS); in sp_otp_read_real()
97 writel(readl(otp->base[OTPRX] + OTP_CONTROL_2) | OTP_READ, in sp_otp_read_real()
98 otp->base[OTPRX] + OTP_CONTROL_2); in sp_otp_read_real()
99 writel(readl(otp->base[OTPRX] + OTP_CONTROL_2) & SEL_BAK_KEY2_MASK & SW_TRIM_EN_MASK in sp_otp_read_real()
101 otp->base[OTPRX] + OTP_CONTROL_2); in sp_otp_read_real()
102 writel((readl(otp->base[OTPRX] + OTP_CONTROL_2) & OTP_RD_PERIOD_MASK) | CPU_CLOCK, in sp_otp_read_real()
[all …]
Dmxs-ocotp.c3 * Freescale MXS On-Chip OTP driver
36 static int mxs_ocotp_wait(struct mxs_ocotp *otp) in mxs_ocotp_wait() argument
42 status = readl(otp->base); in mxs_ocotp_wait()
61 struct mxs_ocotp *otp = context; in mxs_ocotp_read() local
65 ret = clk_enable(otp->clk); in mxs_ocotp_read()
69 writel(BM_OCOTP_CTRL_ERROR, otp->base + STMP_OFFSET_REG_CLR); in mxs_ocotp_read()
71 ret = mxs_ocotp_wait(otp); in mxs_ocotp_read()
76 writel(BM_OCOTP_CTRL_RD_BANK_OPEN, otp->base + STMP_OFFSET_REG_SET); in mxs_ocotp_read()
81 ret = mxs_ocotp_wait(otp); in mxs_ocotp_read()
90 *buf++ = readl(otp->base + offset); in mxs_ocotp_read()
[all …]
Dlpc18xx_otp.c3 * NXP LPC18xx/43xx OTP memory NVMEM driver
10 * TODO: add support for writing OTP register via API in boot ROM.
21 * LPC18xx OTP memory contains 4 banks with 4 32-bit words. Bank 0 starts
43 struct lpc18xx_otp *otp = context; in lpc18xx_otp_read() local
53 *buf++ = readl(otp->base + i * LPC18XX_OTP_WORD_SIZE); in lpc18xx_otp_read()
59 .name = "lpc18xx-otp",
69 struct lpc18xx_otp *otp; in lpc18xx_otp_probe() local
71 otp = devm_kzalloc(&pdev->dev, sizeof(*otp), GFP_KERNEL); in lpc18xx_otp_probe()
72 if (!otp) in lpc18xx_otp_probe()
75 otp->base = devm_platform_ioremap_resource(pdev, 0); in lpc18xx_otp_probe()
[all …]
DKconfig43 tristate "Broadcom On-Chip OTP Controller support"
48 Say y here to enable read/write access to the Broadcom OTP
75 tristate "i.MX 6/7/8 On-Chip OTP Controller support"
79 This is a driver for the On-Chip OTP Controller (OCOTP) available on
87 tristate "i.MX On-Chip OTP Controller support"
92 This is a driver for the On-Chip OTP Controller (OCOTP)
96 tristate "i.MX8 SCU On-Chip OTP Controller support"
100 This is a driver for the SCU On-Chip OTP Controller (OCOTP)
116 tristate "Microchip LAN9662 OTP controller support"
120 This driver enables the OTP controller available on Microchip LAN9662
[all …]
Dnintendo-otp.c3 * Nintendo Wii and Wii U OTP driver
5 * This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
10 * Based on reversed documentation from https://wiiubrew.org/wiki/Hardware/OTP
39 .name = "wii-otp",
44 .name = "wiiu-otp",
68 { .compatible = "nintendo,hollywood-otp", .data = &hollywood_otp_data },
69 { .compatible = "nintendo,latte-otp", .data = &latte_otp_data },
115 .name = "nintendo-otp",
121 MODULE_DESCRIPTION("Nintendo Wii and Wii U OTP driver");
/kernel/linux/linux-5.10/drivers/mfd/
Dab3100-otp.c6 * Driver to read out OTP from the AB3100 Mixed-signal circuit
19 /* The OTP registers */
33 * @locked: whether the OTP is locked, after locking, no more bits
36 * @freq: clocking frequency for the OTP, this frequency is either
62 static int __init ab3100_otp_read(struct ab3100_otp *otp) in ab3100_otp_read() argument
68 err = abx500_get_register_interruptible(otp->dev, 0, in ab3100_otp_read()
71 dev_err(otp->dev, "unable to read OTPP register\n"); in ab3100_otp_read()
75 err = abx500_get_register_page_interruptible(otp->dev, 0, in ab3100_otp_read()
78 dev_err(otp->dev, "unable to read OTP register page\n"); in ab3100_otp_read()
82 /* Cache OTP properties, they never change by nature */ in ab3100_otp_read()
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/nvmem/
Drockchip,otp.yaml4 $id: http://devicetree.org/schemas/nvmem/rockchip,otp.yaml#
7 title: Rockchip internal OTP (One Time Programmable) memory
15 - rockchip,px30-otp
16 - rockchip,rk3308-otp
17 - rockchip,rk3588-otp
29 - const: otp
58 - rockchip,px30-otp
59 - rockchip,rk3308-otp
75 - rockchip,rk3588-otp
84 - const: otp
[all …]
Dnintendo-otp.yaml4 $id: http://devicetree.org/schemas/nvmem/nintendo-otp.yaml#
7 title: Nintendo Wii and Wii U OTP
10 This binding represents the OTP memory as found on a Nintendo Wii or Wii U,
14 See https://wiiubrew.org/wiki/Hardware/OTP
25 - nintendo,hollywood-otp
26 - nintendo,latte-otp
39 otp@d8001ec {
40 compatible = "nintendo,latte-otp";
Dlpc1850-otp.txt1 * NXP LPC18xx OTP memory
3 Internal OTP (One Time Programmable) memory for NXP LPC18xx/43xx devices.
6 - compatible: Should be "nxp,lpc1850-otp"
15 otp: otp@40045000 {
16 compatible = "nxp,lpc1850-otp";
/kernel/linux/linux-6.6/drivers/net/wireless/intel/iwlwifi/
Diwl-eeprom-read.c85 IWL_ERR(trans, "OTP with bad signature: 0x%08x\n", gp); in iwl_eeprom_verify_signature()
92 "bad EEPROM/OTP signature, type=%s, EEPROM_GP=0x%08x\n", in iwl_eeprom_verify_signature()
93 nvm_is_otp ? "OTP" : "EEPROM", gp); in iwl_eeprom_verify_signature()
100 * OTP related functions
116 /* OTP only valid for CP/PP and after */ in iwl_nvm_is_otp()
150 * this is only applicable for HW with OTP shadow RAM in iwl_init_otp_access()
173 IWL_ERR(trans, "Time out reading OTP[%d]\n", addr); in iwl_read_otp_word()
181 /* set the uncorrectable OTP ECC bit for acknowledgment */ in iwl_read_otp_word()
184 IWL_ERR(trans, "Uncorrectable OTP ECC error, abort OTP read\n"); in iwl_read_otp_word()
189 /* set the correctable OTP ECC bit for acknowledgment */ in iwl_read_otp_word()
[all …]
/kernel/linux/linux-6.6/drivers/mtd/spi-nor/
Dotp.c3 * OTP support for SPI NOR flashes
14 #define spi_nor_otp_region_len(nor) ((nor)->params->otp.org->len)
15 #define spi_nor_otp_n_regions(nor) ((nor)->params->otp.org->n_regions)
28 * 256). Thus one "security register" maps to one OTP region.
166 * spi_nor_otp_lock_sr2() - lock the OTP region
168 * @region: OTP region
170 * Lock the OTP region by writing the status register-2. This method is used on
198 * spi_nor_otp_is_locked_sr2() - get the OTP region lock status
200 * @region: OTP region
202 * Retrieve the OTP region lock bit by reading the status register-2. This
[all …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/nvmem/
Drockchip-otp.txt1 Rockchip internal OTP (One Time Programmable) memory device tree bindings
5 - "rockchip,px30-otp" - for PX30 SoCs.
6 - "rockchip,rk3308-otp" - for RK3308 SoCs.
9 - clock-names: Should be "otp", "apb_pclk" and "phy".
17 otp: otp@ff290000 {
18 compatible = "rockchip,px30-otp";
24 clock-names = "otp", "apb_pclk", "phy";
Dlpc1850-otp.txt1 * NXP LPC18xx OTP memory
3 Internal OTP (One Time Programmable) memory for NXP LPC18xx/43xx devices.
6 - compatible: Should be "nxp,lpc1850-otp"
15 otp: otp@40045000 {
16 compatible = "nxp,lpc1850-otp";
/kernel/linux/linux-5.10/drivers/net/wireless/intel/iwlwifi/
Diwl-eeprom-read.c143 IWL_ERR(trans, "OTP with bad signature: 0x%08x\n", gp); in iwl_eeprom_verify_signature()
150 "bad EEPROM/OTP signature, type=%s, EEPROM_GP=0x%08x\n", in iwl_eeprom_verify_signature()
151 nvm_is_otp ? "OTP" : "EEPROM", gp); in iwl_eeprom_verify_signature()
158 * OTP related functions
174 /* OTP only valid for CP/PP and after */ in iwl_nvm_is_otp()
208 * this is only applicable for HW with OTP shadow RAM in iwl_init_otp_access()
231 IWL_ERR(trans, "Time out reading OTP[%d]\n", addr); in iwl_read_otp_word()
239 /* set the uncorrectable OTP ECC bit for acknowledgment */ in iwl_read_otp_word()
242 IWL_ERR(trans, "Uncorrectable OTP ECC error, abort OTP read\n"); in iwl_read_otp_word()
247 /* set the correctable OTP ECC bit for acknowledgment */ in iwl_read_otp_word()
[all …]
/kernel/linux/linux-6.6/drivers/net/wireless/mediatek/mt76/mt7615/
Deeprom.c57 dev->mt76.otp.data = devm_kzalloc(dev->mt76.dev, len, GFP_KERNEL); in mt7615_efuse_init()
58 dev->mt76.otp.size = len; in mt7615_efuse_init()
59 if (!dev->mt76.otp.data) in mt7615_efuse_init()
62 buf = dev->mt76.otp.data; in mt7615_efuse_init()
278 u8 *otp = dev->mt76.otp.data; in mt7615_apply_cal_free_data() local
281 if (!otp) in mt7615_apply_cal_free_data()
285 if (!otp[ical[i]]) in mt7615_apply_cal_free_data()
289 eeprom[ical[i]] = otp[ical[i]]; in mt7615_apply_cal_free_data()
292 eeprom[ical_nocheck[i]] = otp[ical_nocheck[i]]; in mt7615_apply_cal_free_data()
301 u8 *otp = dev->mt76.otp.data; in mt7622_apply_cal_free_data() local
[all …]
/kernel/linux/linux-5.10/drivers/net/wireless/mediatek/mt76/mt7615/
Deeprom.c54 dev->mt76.otp.data = devm_kzalloc(dev->mt76.dev, len, GFP_KERNEL); in mt7615_efuse_init()
55 dev->mt76.otp.size = len; in mt7615_efuse_init()
56 if (!dev->mt76.otp.data) in mt7615_efuse_init()
59 buf = dev->mt76.otp.data; in mt7615_efuse_init()
273 u8 *otp = dev->mt76.otp.data; in mt7615_apply_cal_free_data() local
276 if (!otp) in mt7615_apply_cal_free_data()
280 if (!otp[ical[i]]) in mt7615_apply_cal_free_data()
284 eeprom[ical[i]] = otp[ical[i]]; in mt7615_apply_cal_free_data()
287 eeprom[ical_nocheck[i]] = otp[ical_nocheck[i]]; in mt7615_apply_cal_free_data()
296 u8 *otp = dev->mt76.otp.data; in mt7622_apply_cal_free_data() local
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/mtd/
Dmtd.yaml45 "^otp(-[0-9]+)?$":
50 An OTP memory region. Some flashes provide a one-time-programmable
57 - user-otp
58 - factory-otp
88 otp-1 {
89 compatible = "factory-otp";
98 otp-2 {
99 compatible = "user-otp";
/kernel/linux/linux-6.6/drivers/net/wireless/mediatek/mt76/mt7603/
Deeprom.c51 dev->mt76.otp.data = devm_kzalloc(dev->mt76.dev, len, GFP_KERNEL); in mt7603_efuse_init()
52 dev->mt76.otp.size = len; in mt7603_efuse_init()
53 if (!dev->mt76.otp.data) in mt7603_efuse_init()
56 buf = dev->mt76.otp.data; in mt7603_efuse_init()
109 if (!np || !of_property_read_bool(np, "mediatek,eeprom-merge-otp")) in mt7603_apply_cal_free_data()
165 if (dev->mt76.otp.data) { in mt7603_eeprom_init()
167 mt7603_apply_cal_free_data(dev, dev->mt76.otp.data); in mt7603_eeprom_init()
169 memcpy(dev->mt76.eeprom.data, dev->mt76.otp.data, in mt7603_eeprom_init()
/kernel/linux/linux-5.10/drivers/net/wireless/mediatek/mt76/mt7603/
Deeprom.c51 dev->mt76.otp.data = devm_kzalloc(dev->mt76.dev, len, GFP_KERNEL); in mt7603_efuse_init()
52 dev->mt76.otp.size = len; in mt7603_efuse_init()
53 if (!dev->mt76.otp.data) in mt7603_efuse_init()
56 buf = dev->mt76.otp.data; in mt7603_efuse_init()
109 if (!np || !of_property_read_bool(np, "mediatek,eeprom-merge-otp")) in mt7603_apply_cal_free_data()
164 if (dev->mt76.otp.data) { in mt7603_eeprom_init()
166 mt7603_apply_cal_free_data(dev, dev->mt76.otp.data); in mt7603_eeprom_init()
168 memcpy(dev->mt76.eeprom.data, dev->mt76.otp.data, in mt7603_eeprom_init()

12345678910>>...17