| /kernel/linux/linux-5.10/drivers/nvmem/ |
| D | rockchip-otp.c | 3 * 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 …]
|
| D | mxs-ocotp.c | 3 * 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 …]
|
| D | lpc18xx_otp.c | 3 * 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 …]
|
| D | Kconfig | 36 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/ |
| D | rockchip-otp.c | 3 * 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 …]
|
| D | lan9662-otpc.c | 47 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 …]
|
| D | sunplus-ocotp.c | 21 * 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 …]
|
| D | mxs-ocotp.c | 3 * 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 …]
|
| D | lpc18xx_otp.c | 3 * 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 …]
|
| D | Kconfig | 43 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 …]
|
| D | nintendo-otp.c | 3 * 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/ |
| D | ab3100-otp.c | 6 * 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/ |
| D | rockchip,otp.yaml | 4 $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 …]
|
| D | nintendo-otp.yaml | 4 $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";
|
| D | lpc1850-otp.txt | 1 * 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/ |
| D | iwl-eeprom-read.c | 85 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/ |
| D | otp.c | 3 * 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/ |
| D | rockchip-otp.txt | 1 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";
|
| D | lpc1850-otp.txt | 1 * 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/ |
| D | iwl-eeprom-read.c | 143 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/ |
| D | eeprom.c | 57 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/ |
| D | eeprom.c | 54 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/ |
| D | mtd.yaml | 45 "^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/ |
| D | eeprom.c | 51 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/ |
| D | eeprom.c | 51 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()
|