Re: [PATCH 2/2] drm: anx7625: add I2S input stream right justified control
From: Chen-Yu Tsai
Date: Tue Aug 18 2026 - 05:09:31 EST
On Tue, Aug 18, 2026 at 10:06 AM Xin Ji <xji@xxxxxxxxxxxxxxxx> wrote:
>
> The default audio data stream is left justify. When the
> property "analogix,audio-right-justify-enable" is detected,
> the code enables right justify.
>
> Signed-off-by: Xin Ji <xji@xxxxxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/bridge/analogix/anx7625.c | 9 +++++++++
> drivers/gpu/drm/bridge/analogix/anx7625.h | 3 +++
> 2 files changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
> index c3af88e14f8b..f4bce0000676 100644
> --- a/drivers/gpu/drm/bridge/analogix/anx7625.c
> +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
> @@ -1883,6 +1883,9 @@ static int anx7625_parse_dt(struct device *dev,
> if (of_property_read_bool(np, "analogix,audio-enable"))
> pdata->audio_en = 1;
>
> + if (of_property_read_bool(np, "analogix,audio-right-justify-enable"))
> + pdata->audio_right_justify = 1;
> +
> return 0;
> }
>
> @@ -2083,6 +2086,12 @@ static int anx7625_audio_hw_params(struct device *dev, void *data,
> ret |= anx7625_write_and(ctx, ctx->i2c.tx_p2_client,
> AUDIO_CHANNEL_STATUS_6, ~AUDIO_LAYOUT);
>
> + /* Right justified */
> + if (ctx->pdata.audio_right_justify)
As Sashiko already mentioned, this should check against the format
(fmt->fmt here).
Is the right justified format you want to support for I2S or TDM or both?
For I2S you can check if format == HDMI_RIGHT_J. There is no right justified
format for TDM in Linux, so you would need to add that to ASoC.
ChenYu
> + ret |= anx7625_write_or(ctx, ctx->i2c.tx_p2_client,
> + AUDIO_CONTROL_REGISTER,
> + RIGHT_JUSTIFY_CTRL);
> +
> /* FS */
> switch (params->sample_rate) {
> case 32000:
> diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.h b/drivers/gpu/drm/bridge/analogix/anx7625.h
> index 957d234ec07c..9dd9970d2172 100644
> --- a/drivers/gpu/drm/bridge/analogix/anx7625.h
> +++ b/drivers/gpu/drm/bridge/analogix/anx7625.h
> @@ -154,6 +154,8 @@
> #define HPD_TIME 54000
>
> #define AUDIO_CONTROL_REGISTER 0xe6
> +#define RIGHT_JUSTIFY_CTRL BIT(0)
> +
> #define TDM_TIMING_MODE 0x08
>
> #define I2C_ADDR_72_DPTX 0x72
> @@ -444,6 +446,7 @@ struct anx7625_platform_data {
> int is_dpi;
> int mipi_lanes;
> int audio_en;
> + int audio_right_justify;
> int dp_lane0_swing_reg_cnt;
> u8 lane0_reg_data[DP_TX_SWING_REG_CNT];
> int dp_lane1_swing_reg_cnt;
> --
> 2.25.1
>