Lines Matching +full:hall +full:- +full:enable
8 * Kylene Hall <kjhall@us.ibm.com>
10 * Maintained by: <tpmdd-devel@lists.sourceforge.net>
77 struct tpm_nsc_priv *priv = dev_get_drvdata(&chip->dev); in wait_for_stat()
81 *data = inb(priv->base + NSC_STATUS); in wait_for_stat()
89 *data = inb(priv->base + 1); in wait_for_stat()
95 return -EBUSY; in wait_for_stat()
100 struct tpm_nsc_priv *priv = dev_get_drvdata(&chip->dev); in nsc_wait_for_ready()
105 status = inb(priv->base + NSC_STATUS); in nsc_wait_for_ready()
107 status = inb(priv->base + NSC_DATA); in nsc_wait_for_ready()
115 status = inb(priv->base + NSC_STATUS); in nsc_wait_for_ready()
117 status = inb(priv->base + NSC_DATA); in nsc_wait_for_ready()
123 dev_info(&chip->dev, "wait for ready failed\n"); in nsc_wait_for_ready()
124 return -EBUSY; in nsc_wait_for_ready()
130 struct tpm_nsc_priv *priv = dev_get_drvdata(&chip->dev); in tpm_nsc_recv()
137 return -EIO; in tpm_nsc_recv()
140 dev_err(&chip->dev, "F0 timeout\n"); in tpm_nsc_recv()
141 return -EIO; in tpm_nsc_recv()
144 data = inb(priv->base + NSC_DATA); in tpm_nsc_recv()
146 dev_err(&chip->dev, "not in normal mode (0x%x)\n", in tpm_nsc_recv()
148 return -EIO; in tpm_nsc_recv()
155 dev_err(&chip->dev, in tpm_nsc_recv()
157 return -EIO; in tpm_nsc_recv()
161 *p = inb(priv->base + NSC_DATA); in tpm_nsc_recv()
166 dev_err(&chip->dev, "F0 not set\n"); in tpm_nsc_recv()
167 return -EIO; in tpm_nsc_recv()
170 data = inb(priv->base + NSC_DATA); in tpm_nsc_recv()
172 dev_err(&chip->dev, in tpm_nsc_recv()
174 return -EIO; in tpm_nsc_recv()
181 return -EIO; in tpm_nsc_recv()
188 struct tpm_nsc_priv *priv = dev_get_drvdata(&chip->dev); in tpm_nsc_send()
198 outb(NSC_COMMAND_CANCEL, priv->base + NSC_COMMAND); in tpm_nsc_send()
201 return -EIO; in tpm_nsc_send()
204 dev_err(&chip->dev, "IBF timeout\n"); in tpm_nsc_send()
205 return -EIO; in tpm_nsc_send()
208 outb(NSC_COMMAND_NORMAL, priv->base + NSC_COMMAND); in tpm_nsc_send()
210 dev_err(&chip->dev, "IBR timeout\n"); in tpm_nsc_send()
211 return -EIO; in tpm_nsc_send()
216 dev_err(&chip->dev, in tpm_nsc_send()
218 return -EIO; in tpm_nsc_send()
220 outb(buf[i], priv->base + NSC_DATA); in tpm_nsc_send()
224 dev_err(&chip->dev, "IBF timeout\n"); in tpm_nsc_send()
225 return -EIO; in tpm_nsc_send()
227 outb(NSC_COMMAND_EOC, priv->base + NSC_COMMAND); in tpm_nsc_send()
234 struct tpm_nsc_priv *priv = dev_get_drvdata(&chip->dev); in tpm_nsc_cancel()
236 outb(NSC_COMMAND_CANCEL, priv->base + NSC_COMMAND); in tpm_nsc_cancel()
241 struct tpm_nsc_priv *priv = dev_get_drvdata(&chip->dev); in tpm_nsc_status()
243 return inb(priv->base + NSC_STATUS); in tpm_nsc_status()
266 struct tpm_nsc_priv *priv = dev_get_drvdata(&chip->dev); in tpm_nsc_remove()
269 release_region(priv->base, 2); in tpm_nsc_remove()
307 return -ENODEV; in init_nsc()
318 /* enable the DPM module */ in init_nsc()
321 pdev = platform_device_alloc("tpm_nscl0", -1); in init_nsc()
323 rc = -ENOMEM; in init_nsc()
327 pdev->num_resources = 0; in init_nsc()
328 pdev->dev.driver = &nsc_drv.driver; in init_nsc()
329 pdev->dev.release = tpm_nsc_remove; in init_nsc()
334 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); in init_nsc()
336 rc = -ENOMEM; in init_nsc()
340 priv->base = base; in init_nsc()
343 rc = -EBUSY; in init_nsc()
347 chip = tpmm_chip_alloc(&pdev->dev, &tpm_nsc); in init_nsc()
349 rc = -ENODEV; in init_nsc()
353 dev_set_drvdata(&chip->dev, priv); in init_nsc()
359 dev_dbg(&pdev->dev, "NSC TPM detected\n"); in init_nsc()
360 dev_dbg(&pdev->dev, in init_nsc()
364 dev_dbg(&pdev->dev, in init_nsc()
368 dev_dbg(&pdev->dev, "NSC IO Base0 0x%x\n", in init_nsc()
370 dev_dbg(&pdev->dev, "NSC IO Base1 0x%x\n", in init_nsc()
372 dev_dbg(&pdev->dev, "NSC Interrupt number and wakeup 0x%x\n", in init_nsc()
374 dev_dbg(&pdev->dev, "NSC IRQ type select 0x%x\n", in init_nsc()
376 dev_dbg(&pdev->dev, in init_nsc()
379 dev_dbg(&pdev->dev, in init_nsc()
388 dev_info(&pdev->dev, in init_nsc()
408 tpm_nsc_remove(&pdev->dev); in cleanup_nsc()