Re: [PATCH v4 2/2] serial: pl011: Add reg-io-width parameters

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 26 Aug 2022, Shubhrajyoti Datta wrote:

> Some of the implementations can read only 32 bits because of
> the interface limitations of the port they are connected to.
> Add a parameter reg-io-width for supporting such platforms.
> 
> Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xxxxxxx>

Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>

-- 
 i.


> ---
> v4:
> No change
> 
>  drivers/tty/serial/amba-pl011.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
> index 15f0e4d88c5a..033bf8699540 100644
> --- a/drivers/tty/serial/amba-pl011.c
> +++ b/drivers/tty/serial/amba-pl011.c
> @@ -2777,6 +2777,7 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
>  	struct uart_amba_port *uap;
>  	struct vendor_data *vendor = id->data;
>  	int portnr, ret;
> +	u32 val;
>  
>  	portnr = pl011_find_free_port();
>  	if (portnr < 0)
> @@ -2801,6 +2802,21 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
>  	uap->port.rs485_supported = pl011_rs485_supported;
>  	snprintf(uap->type, sizeof(uap->type), "PL011 rev%u", amba_rev(dev));
>  
> +	if (device_property_read_u32(&dev->dev, "reg-io-width", &val) == 0) {
> +		switch (val) {
> +		case 1:
> +			uap->port.iotype = UPIO_MEM;
> +			break;
> +		case 4:
> +			uap->port.iotype = UPIO_MEM32;
> +			break;
> +		default:
> +			dev_warn(&dev->dev, "unsupported reg-io-width (%d)\n",
> +				 val);
> +			return -EINVAL;
> +		}
> +	}
> +
>  	ret = pl011_setup_port(&dev->dev, uap, &dev->res, portnr);
>  	if (ret)
>  		return ret;


[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux