tee: add bus driver framework for TEE based devices
authorSumit Garg <sumit.garg@linaro.org>
Tue, 29 Jan 2019 05:49:35 +0000 (11:19 +0530)
committerJens Wiklander <jens.wiklander@linaro.org>
Fri, 1 Feb 2019 14:12:46 +0000 (15:12 +0100)
commit0fc1db9d105915021260eb241661b8e96f5c0f1a
tree5e5d608e2a01aaeec416ade44d47036638ad7289
parent42bf4152d8a79f89f5456dee63a1f364fbce2dd6
tee: add bus driver framework for TEE based devices

Introduce a generic TEE bus driver concept for TEE based kernel drivers
which would like to communicate with TEE based devices/services. Also
add support in module device table for these new TEE based devices.

In this TEE bus concept, devices/services are identified via Universally
Unique Identifier (UUID) and drivers register a table of device UUIDs
which they can support.

So this TEE bus framework registers following apis:
- match(): Iterates over the driver UUID table to find a corresponding
  match for device UUID. If a match is found, then this particular device
  is probed via corresponding probe api registered by the driver. This
  process happens whenever a device or a driver is registered with TEE
  bus.
- uevent(): Notifies user-space (udev) whenever a new device is registered
  on this bus for auto-loading of modularized drivers.

Also this framework allows for device enumeration to be specific to
corresponding TEE implementation like OP-TEE etc.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Reviewed-by: Bhupesh Sharma <bhsharma@redhat.com>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
drivers/tee/tee_core.c
include/linux/mod_devicetable.h
include/linux/tee_drv.h
scripts/mod/devicetable-offsets.c
scripts/mod/file2alias.c