[PATCH v2 6/9] ufs: Allow mmio registers on the PCI bus

Neha Malcom Francis n-francis at ti.com
Thu Nov 23 05:45:03 CET 2023


Hi Bin,

On 11/10/23 18:45, Bin Meng wrote:
> Check if the UFS controller is on the PCI bus, and get its register
> base address accordingly.
> 
> Signed-off-by: Bin Meng <bmeng at tinylab.org>
> ---
> 
> (no changes since v1)
> 
>   drivers/ufs/ufs.c | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/ufs/ufs.c b/drivers/ufs/ufs.c
> index 96801866d3..fb2a607ef1 100644
> --- a/drivers/ufs/ufs.c
> +++ b/drivers/ufs/ufs.c
> @@ -1914,6 +1914,7 @@ int ufshcd_probe(struct udevice *ufs_dev, struct ufs_hba_ops *hba_ops)
>   	struct ufs_hba *hba = dev_get_uclass_priv(ufs_dev);
>   	struct scsi_plat *scsi_plat;
>   	struct udevice *scsi_dev;
> +	void __iomem *mmio_base;
>   	int err;
>   
>   	device_find_first_child(ufs_dev, &scsi_dev);
> @@ -1927,7 +1928,14 @@ int ufshcd_probe(struct udevice *ufs_dev, struct ufs_hba_ops *hba_ops)
>   
>   	hba->dev = ufs_dev;
>   	hba->ops = hba_ops;
> -	hba->mmio_base = dev_read_addr_ptr(ufs_dev);
> +
> +	if (device_is_on_pci_bus(ufs_dev)) {
> +		mmio_base = dm_pci_map_bar(ufs_dev, PCI_BASE_ADDRESS_0, 0, 0,
> +					   PCI_REGION_TYPE, PCI_REGION_MEM);
> +	} else {
> +		mmio_base = dev_read_addr_ptr(ufs_dev);
> +	}
> +	hba->mmio_base = mmio_base;
>   
>   	/* Set descriptor lengths to specification defaults */
>   	ufshcd_def_desc_sizes(hba);

Reviewed-by: Neha Malcom Francis <n-francis at ti.com>

-- 
Thanking You
Neha Malcom Francis


More information about the U-Boot mailing list