i2c: tegra: Add GPCDMA support
authorAkhil R <akhilrajeev@nvidia.com>
Tue, 6 Sep 2022 14:47:14 +0000 (20:17 +0530)
committerWolfram Sang <wsa@kernel.org>
Fri, 16 Sep 2022 19:46:40 +0000 (20:46 +0100)
Enable support for GPCDMA, which is used in I2C controllers
in Tegra 186 and above. The chips before that used APB DMA.
This change works under the presumption that all chips apart from
those supporting APB DMA is using GPCDMA.

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-tegra.c

index 031c78ac42e67f6a7676af04214b3ce5cd0551a7..954022c04cc422dbc03569a9770adc7bee054818 100644 (file)
@@ -443,11 +443,16 @@ static int tegra_i2c_init_dma(struct tegra_i2c_dev *i2c_dev)
        u32 *dma_buf;
        int err;
 
-       if (!i2c_dev->hw->has_apb_dma || i2c_dev->is_vi)
+       if (i2c_dev->is_vi)
                return 0;
 
-       if (!IS_ENABLED(CONFIG_TEGRA20_APB_DMA)) {
-               dev_dbg(i2c_dev->dev, "DMA support not enabled\n");
+       if (!i2c_dev->hw->has_apb_dma) {
+               if (!IS_ENABLED(CONFIG_TEGRA20_APB_DMA)) {
+                       dev_dbg(i2c_dev->dev, "APB DMA support not enabled\n");
+                       return 0;
+               }
+       } else if (!IS_ENABLED(CONFIG_TEGRA186_GPC_DMA)) {
+               dev_dbg(i2c_dev->dev, "GPC DMA support not enabled\n");
                return 0;
        }