Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d865771 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

fbdev: sh-mobile: Add HDMI sound type selection

parent c88e7b93
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -318,6 +318,9 @@ static void sh_hdmi_video_config(struct sh_hdmi *hdmi)
 */
static void sh_hdmi_audio_config(struct sh_hdmi *hdmi)
{
	u8 data;
	struct sh_mobile_hdmi_info *pdata = hdmi->dev->platform_data;

	/*
	 * [7:4] L/R data swap control
	 * [3:0] appropriate N[19:16]
@@ -335,7 +338,23 @@ static void sh_hdmi_audio_config(struct sh_hdmi *hdmi)
	 * [6:5] set required down sampling rate if required
	 * [4:3] set required audio source
	 */
	hdmi_write(hdmi, 0x00, HDMI_AUDIO_SETTING_1);
	switch (pdata->flags & HDMI_SRC_MASK) {
	default:
		/* FALL THROUGH */
	case HDMI_SRC_I2S:
		data = (0x0 << 3);
		break;
	case HDMI_SRC_SPDIF:
		data = (0x1 << 3);
		break;
	case HDMI_SRC_DSD:
		data = (0x2 << 3);
		break;
	case HDMI_SRC_HBR:
		data = (0x3 << 3);
		break;
	}
	hdmi_write(hdmi, data, HDMI_AUDIO_SETTING_1);

	/* [3:0] set sending channel number for channel status */
	hdmi_write(hdmi, 0x40, HDMI_AUDIO_SETTING_2);
+16 −0
Original line number Diff line number Diff line
@@ -14,9 +14,25 @@
struct sh_mobile_lcdc_chan_cfg;
struct device;

/*
 * flags format
 *
 * 0x0000000A
 *
 * A: Audio source select
 */

/* Audio source select */
#define HDMI_SRC_MASK		(0xF << 0)
#define HDMI_SRC_I2S		(0 << 0) /* default */
#define HDMI_SRC_SPDIF		(1 << 0)
#define HDMI_SRC_DSD		(2 << 0)
#define HDMI_SRC_HBR		(3 << 0)

struct sh_mobile_hdmi_info {
	struct sh_mobile_lcdc_chan_cfg	*lcd_chan;
	struct device			*lcd_dev;
	unsigned int			 flags;
};

#endif