Lines Matching +full:synquacer +full:- +full:spi

1 // SPDX-License-Identifier: GPL-2.0
5 * This device driver implements MMIO TPM on SynQuacer Platform.
19 * irq = -1 means: no irq support
43 while (len--) in tpm_tis_synquacer_read_bytes()
44 *result++ = ioread8(phy->iobase + addr); in tpm_tis_synquacer_read_bytes()
47 result[1] = ioread8(phy->iobase + addr + 1); in tpm_tis_synquacer_read_bytes()
48 result[0] = ioread8(phy->iobase + addr); in tpm_tis_synquacer_read_bytes()
51 result[3] = ioread8(phy->iobase + addr + 3); in tpm_tis_synquacer_read_bytes()
52 result[2] = ioread8(phy->iobase + addr + 2); in tpm_tis_synquacer_read_bytes()
53 result[1] = ioread8(phy->iobase + addr + 1); in tpm_tis_synquacer_read_bytes()
54 result[0] = ioread8(phy->iobase + addr); in tpm_tis_synquacer_read_bytes()
68 while (len--) in tpm_tis_synquacer_write_bytes()
69 iowrite8(*value++, phy->iobase + addr); in tpm_tis_synquacer_write_bytes()
72 return -EINVAL; in tpm_tis_synquacer_write_bytes()
75 * Due to the limitation of SPI controller on SynQuacer, in tpm_tis_synquacer_write_bytes()
76 * 16/32 bits access must be done in byte-wise and descending order. in tpm_tis_synquacer_write_bytes()
78 iowrite8(value[3], phy->iobase + addr + 3); in tpm_tis_synquacer_write_bytes()
79 iowrite8(value[2], phy->iobase + addr + 2); in tpm_tis_synquacer_write_bytes()
80 iowrite8(value[1], phy->iobase + addr + 1); in tpm_tis_synquacer_write_bytes()
81 iowrite8(value[0], phy->iobase + addr); in tpm_tis_synquacer_write_bytes()
100 return -ENOMEM; in tpm_tis_synquacer_init()
102 phy->iobase = devm_ioremap_resource(dev, &tpm_info->res); in tpm_tis_synquacer_init()
103 if (IS_ERR(phy->iobase)) in tpm_tis_synquacer_init()
104 return PTR_ERR(phy->iobase); in tpm_tis_synquacer_init()
106 return tpm_tis_core_init(dev, &phy->priv, tpm_info->irq, &tpm_tcg_bw, in tpm_tis_synquacer_init()
119 dev_err(&pdev->dev, "no memory resource defined\n"); in tpm_tis_synquacer_probe()
120 return -ENODEV; in tpm_tis_synquacer_probe()
124 tpm_info.irq = -1; in tpm_tis_synquacer_probe()
126 return tpm_tis_synquacer_init(&pdev->dev, &tpm_info); in tpm_tis_synquacer_probe()
131 struct tpm_chip *chip = dev_get_drvdata(&pdev->dev); in tpm_tis_synquacer_remove()
139 {.compatible = "socionext,synquacer-tpm-mmio"},
166 MODULE_DESCRIPTION("TPM MMIO Driver for Socionext SynQuacer platform");