[PATCH 09/10] serial: msm: Re-enable after resetting

Neil Armstrong neil.armstrong at linaro.org
Tue Jun 24 11:40:01 CEST 2025


On 24/06/2025 10:45, Stephan Gerhold wrote:
> The documentation for the UART controller in the APQ8016E specifies that
> both RESET and ENABLE commands must be issued to set up the receiver and
> transmitter, but at the moment we only issue RESET. This doesn't seem to
> cause issues in practice (looks like the reset already re-enables the
> receiver/transmitter), but let's add the two writes to RX_ENABLE/TX_ENABLE
> to better match the recommendations in the documentation.
> 
> Signed-off-by: Stephan Gerhold <stephan.gerhold at linaro.org>
> ---
>   drivers/serial/serial_msm.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/serial/serial_msm.c b/drivers/serial/serial_msm.c
> index 5523ec4afe17f242d61bc2ec4b4534b5b974434c..2c08a84b02773663f3c3a11eddaaa7a8bab2b4a1 100644
> --- a/drivers/serial/serial_msm.c
> +++ b/drivers/serial/serial_msm.c
> @@ -50,6 +50,8 @@
>   #define UARTDM_SR_UART_OVERRUN   (1 << 4) /* Receive overrun */
>   
>   #define UARTDM_CR                         0xA8 /* Command register */
> +#define UARTDM_CR_RX_ENABLE               (1 << 0) /* Enable receiver */
> +#define UARTDM_CR_TX_ENABLE               (1 << 2) /* Enable transmitter */
>   #define UARTDM_CR_CMD_RESET_RX            (1 << 4) /* Reset receiver */
>   #define UARTDM_CR_CMD_RESET_TX            (2 << 4) /* Reset transmitter */
>   #define UARTDM_CR_CMD_RESET_ERR           (3 << 4) /* Clear overrun error */
> @@ -225,6 +227,8 @@ static void uart_dm_init(struct msm_serial_data *priv)
>   
>   	writel(UARTDM_CR_CMD_RESET_RX, priv->base + UARTDM_CR);
>   	writel(UARTDM_CR_CMD_RESET_TX, priv->base + UARTDM_CR);
> +	writel(UARTDM_CR_RX_ENABLE, priv->base + UARTDM_CR);
> +	writel(UARTDM_CR_TX_ENABLE, priv->base + UARTDM_CR);
>   }
>   static int msm_serial_probe(struct udevice *dev)
>   {
> 

Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>


More information about the U-Boot mailing list