mirror of https://gitee.com/openkylin/linux.git
tpm_tis: Allow tpm_tis to be bound using DT
This provides an open firwmare driver binding for tpm_tis. OF is useful on arches where ACPI/PNP is not used. The tcg,tpm-tis-mmio register map interface is specified by the TCG. Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
This commit is contained in:
parent
7ea7861c8c
commit
420d439849
|
@ -0,0 +1,25 @@
|
|||
Trusted Computing Group MMIO Trusted Platform Module
|
||||
|
||||
The TCG defines multi vendor standard for accessing a TPM chip, this
|
||||
is the standard protocol defined to access the TPM via MMIO. Typically
|
||||
this interface will be implemented over Intel's LPC bus.
|
||||
|
||||
Refer to the 'TCG PC Client Specific TPM Interface Specification (TIS)' TCG
|
||||
publication for the specification.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should contain a string below for the chip, followed by
|
||||
"tcg,tpm-tis-mmio". Valid chip strings are:
|
||||
* "atmel,at97sc3204"
|
||||
- reg: The location of the MMIO registers, should be at least 0x5000 bytes
|
||||
- interrupt-parent/interrupts: An optional interrupt indicating command completion.
|
||||
|
||||
Example:
|
||||
|
||||
tpm_tis@90000 {
|
||||
compatible = "atmel,at97sc3204", "tcg,tpm-tis-mmio";
|
||||
reg = <0x90000 0x5000>;
|
||||
interrupt-parent = <&EIC0>;
|
||||
interrupts = <1 2>;
|
||||
};
|
|
@ -32,7 +32,7 @@ config TCG_TIS_CORE
|
|||
|
||||
config TCG_TIS
|
||||
tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface"
|
||||
depends on X86
|
||||
depends on X86 || OF
|
||||
select TCG_TIS_CORE
|
||||
---help---
|
||||
If you have a TPM security chip that is compliant with the
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
#include <linux/wait.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/freezer.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include "tpm.h"
|
||||
#include "tpm_tis_core.h"
|
||||
|
||||
|
@ -354,12 +356,21 @@ static int tpm_tis_plat_remove(struct platform_device *pdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id tis_of_platform_match[] = {
|
||||
{.compatible = "tcg,tpm-tis-mmio"},
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, tis_of_platform_match);
|
||||
#endif
|
||||
|
||||
static struct platform_driver tis_drv = {
|
||||
.probe = tpm_tis_plat_probe,
|
||||
.remove = tpm_tis_plat_remove,
|
||||
.driver = {
|
||||
.name = "tpm_tis",
|
||||
.pm = &tpm_tis_pm,
|
||||
.of_match_table = of_match_ptr(tis_of_platform_match),
|
||||
},
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue