1*8d13bc63SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*8d13bc63SEmmanuel Vadot%YAML 1.2 3*8d13bc63SEmmanuel Vadot--- 4*8d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/tpm/google,cr50.yaml# 5*8d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8d13bc63SEmmanuel Vadot 7*8d13bc63SEmmanuel Vadottitle: Google Security Chip H1 (running Cr50 firmware) 8*8d13bc63SEmmanuel Vadot 9*8d13bc63SEmmanuel Vadotmaintainers: 10*8d13bc63SEmmanuel Vadot - Andrey Pronin <apronin@chromium.org> 11*8d13bc63SEmmanuel Vadot 12*8d13bc63SEmmanuel Vadotdescription: | 13*8d13bc63SEmmanuel Vadot Google has designed a family of security chips called "Titan". 14*8d13bc63SEmmanuel Vadot One member is the H1 built into Chromebooks and running Cr50 firmware: 15*8d13bc63SEmmanuel Vadot https://www.osfc.io/2018/talks/google-secure-microcontroller-and-ccd-closed-case-debugging/ 16*8d13bc63SEmmanuel Vadot 17*8d13bc63SEmmanuel Vadot The chip provides several functions, including TPM 2.0 like functionality. 18*8d13bc63SEmmanuel Vadot It communicates over SPI or I²C using the FIFO protocol described in the 19*8d13bc63SEmmanuel Vadot TCG PC Client Platform TPM Profile Specification for TPM 2.0 (PTP), sec 6: 20*8d13bc63SEmmanuel Vadot https://trustedcomputinggroup.org/resource/pc-client-platform-tpm-profile-ptp-specification/ 21*8d13bc63SEmmanuel Vadot 22*8d13bc63SEmmanuel Vadotproperties: 23*8d13bc63SEmmanuel Vadot compatible: 24*8d13bc63SEmmanuel Vadot const: google,cr50 25*8d13bc63SEmmanuel Vadot 26*8d13bc63SEmmanuel VadotallOf: 27*8d13bc63SEmmanuel Vadot - $ref: tpm-common.yaml# 28*8d13bc63SEmmanuel Vadot 29*8d13bc63SEmmanuel VadotanyOf: 30*8d13bc63SEmmanuel Vadot - $ref: /schemas/spi/spi-peripheral-props.yaml# 31*8d13bc63SEmmanuel Vadot - $ref: tcg,tpm-tis-i2c.yaml#/properties/reg 32*8d13bc63SEmmanuel Vadot 33*8d13bc63SEmmanuel Vadotrequired: 34*8d13bc63SEmmanuel Vadot - compatible 35*8d13bc63SEmmanuel Vadot - reg 36*8d13bc63SEmmanuel Vadot 37*8d13bc63SEmmanuel VadotunevaluatedProperties: false 38*8d13bc63SEmmanuel Vadot 39*8d13bc63SEmmanuel Vadotexamples: 40*8d13bc63SEmmanuel Vadot - | 41*8d13bc63SEmmanuel Vadot spi { 42*8d13bc63SEmmanuel Vadot #address-cells = <1>; 43*8d13bc63SEmmanuel Vadot #size-cells = <0>; 44*8d13bc63SEmmanuel Vadot 45*8d13bc63SEmmanuel Vadot tpm@0 { 46*8d13bc63SEmmanuel Vadot reg = <0>; 47*8d13bc63SEmmanuel Vadot compatible = "google,cr50"; 48*8d13bc63SEmmanuel Vadot spi-max-frequency = <800000>; 49*8d13bc63SEmmanuel Vadot }; 50*8d13bc63SEmmanuel Vadot }; 51*8d13bc63SEmmanuel Vadot 52*8d13bc63SEmmanuel Vadot - | 53*8d13bc63SEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 54*8d13bc63SEmmanuel Vadot i2c { 55*8d13bc63SEmmanuel Vadot #address-cells = <1>; 56*8d13bc63SEmmanuel Vadot #size-cells = <0>; 57*8d13bc63SEmmanuel Vadot 58*8d13bc63SEmmanuel Vadot tpm@50 { 59*8d13bc63SEmmanuel Vadot compatible = "google,cr50"; 60*8d13bc63SEmmanuel Vadot reg = <0x50>; 61*8d13bc63SEmmanuel Vadot interrupts-extended = <&pio 88 IRQ_TYPE_EDGE_FALLING>; 62*8d13bc63SEmmanuel Vadot pinctrl-names = "default"; 63*8d13bc63SEmmanuel Vadot pinctrl-0 = <&cr50_int>; 64*8d13bc63SEmmanuel Vadot }; 65*8d13bc63SEmmanuel Vadot }; 66