From ed0f6d7cb762b40d282101cf847f3d45209a5f26 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Tue, 28 Jun 2016 14:59:21 -0500 Subject: lib/nhlt: add helper functions for adding endpoints In order to ease the porting of supporting NHLT endpoints introduce a nhlt_endpoint_descriptor structure as well as corresponding helper functions. Change-Id: I68edaf681b4e60502f6ddbbd04de21d8aa072296 Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/15486 Reviewed-by: Furquan Shaikh Tested-by: build bot (Jenkins) --- src/include/nhlt.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/include/nhlt.h') diff --git a/src/include/nhlt.h b/src/include/nhlt.h index f0b3b6f5e7..3300d43d5d 100644 --- a/src/include/nhlt.h +++ b/src/include/nhlt.h @@ -57,6 +57,43 @@ struct nhlt *nhlt_init(void); /* Return the size of the NHLT table including APCI header. */ size_t nhlt_current_size(struct nhlt *nhlt); +/* + * Helper functions for adding NHLT devices utilizing an nhlt_endp_descriptor + * to drive the logic. + */ + +struct nhlt_endp_descriptor { + /* NHLT endpoint types. */ + int link; + int device; + int direction; + uint16_t vid; + uint16_t did; + /* Optional endpoint specific configuration data. */ + const void *cfg; + size_t cfg_size; + /* Formats supported for endpoint. */ + const struct nhlt_format_config *formats; + size_t num_formats; +}; + +/* + * Add the number of endpoints described by each descriptor. The virtual bus + * id for each descriptor is the default value of 0. + * Returns < 0 on error, 0 on success. + */ +int nhlt_add_endpoints(struct nhlt *nhlt, + const struct nhlt_endp_descriptor *epds, + size_t num_epds); + +/* + * Add the number of endpoints associated with a single NHLT SSP instance id. + * Each endpoint described in the endpoint descriptor array uses the provided + * virtual bus id. Returns < 0 on error, 0 on success. + */ +int nhlt_add_ssp_endpoints(struct nhlt *nhlt, int virtual_bus_id, + const struct nhlt_endp_descriptor *epds, size_t num_epds); + /* * Add endpoint to NHLT object. Returns NULL on error. * -- cgit v1.2.3