17fa2d70fSSrinivas Kandagatla /* SPDX-License-Identifier: GPL-2.0 */ 27fa2d70fSSrinivas Kandagatla 37fa2d70fSSrinivas Kandagatla #ifndef __Q6AFE_H__ 47fa2d70fSSrinivas Kandagatla #define __Q6AFE_H__ 57fa2d70fSSrinivas Kandagatla 67fa2d70fSSrinivas Kandagatla #include <dt-bindings/sound/qcom,q6afe.h> 77fa2d70fSSrinivas Kandagatla 87fa2d70fSSrinivas Kandagatla #define AFE_PORT_MAX 48 97fa2d70fSSrinivas Kandagatla 107fa2d70fSSrinivas Kandagatla #define MSM_AFE_PORT_TYPE_RX 0 117fa2d70fSSrinivas Kandagatla #define MSM_AFE_PORT_TYPE_TX 1 127fa2d70fSSrinivas Kandagatla #define AFE_MAX_PORTS AFE_PORT_MAX 137fa2d70fSSrinivas Kandagatla 147fa2d70fSSrinivas Kandagatla struct q6afe_hdmi_cfg { 157fa2d70fSSrinivas Kandagatla u16 datatype; 167fa2d70fSSrinivas Kandagatla u16 channel_allocation; 177fa2d70fSSrinivas Kandagatla u32 sample_rate; 187fa2d70fSSrinivas Kandagatla u16 bit_width; 197fa2d70fSSrinivas Kandagatla }; 207fa2d70fSSrinivas Kandagatla 217fa2d70fSSrinivas Kandagatla struct q6afe_port_config { 227fa2d70fSSrinivas Kandagatla struct q6afe_hdmi_cfg hdmi; 237fa2d70fSSrinivas Kandagatla }; 247fa2d70fSSrinivas Kandagatla 257fa2d70fSSrinivas Kandagatla struct q6afe_port; 267fa2d70fSSrinivas Kandagatla 277fa2d70fSSrinivas Kandagatla struct q6afe_port *q6afe_port_get_from_id(struct device *dev, int id); 287fa2d70fSSrinivas Kandagatla int q6afe_port_start(struct q6afe_port *port); 297fa2d70fSSrinivas Kandagatla int q6afe_port_stop(struct q6afe_port *port); 307fa2d70fSSrinivas Kandagatla void q6afe_port_put(struct q6afe_port *port); 317fa2d70fSSrinivas Kandagatla int q6afe_get_port_id(int index); 327fa2d70fSSrinivas Kandagatla void q6afe_hdmi_port_prepare(struct q6afe_port *port, 337fa2d70fSSrinivas Kandagatla struct q6afe_hdmi_cfg *cfg); 347fa2d70fSSrinivas Kandagatla 357fa2d70fSSrinivas Kandagatla #endif /* __Q6AFE_H__ */ 36