i2cd 58 drivers/i2c/busses/i2c-nvidia-gpu.c static void gpu_enable_i2c_bus(struct gpu_i2c_dev *i2cd) i2cd 63 drivers/i2c/busses/i2c-nvidia-gpu.c val = readl(i2cd->regs + I2C_MST_HYBRID_PADCTL); i2cd 67 drivers/i2c/busses/i2c-nvidia-gpu.c writel(val, i2cd->regs + I2C_MST_HYBRID_PADCTL); i2cd 74 drivers/i2c/busses/i2c-nvidia-gpu.c writel(val, i2cd->regs + I2C_MST_I2C0_TIMING); i2cd 77 drivers/i2c/busses/i2c-nvidia-gpu.c static int gpu_i2c_check_status(struct gpu_i2c_dev *i2cd) i2cd 82 drivers/i2c/busses/i2c-nvidia-gpu.c ret = readl_poll_timeout(i2cd->regs + I2C_MST_CNTL, val, i2cd 88 drivers/i2c/busses/i2c-nvidia-gpu.c dev_err(i2cd->dev, "i2c timeout error %x\n", val); i2cd 92 drivers/i2c/busses/i2c-nvidia-gpu.c val = readl(i2cd->regs + I2C_MST_CNTL); i2cd 105 drivers/i2c/busses/i2c-nvidia-gpu.c static int gpu_i2c_read(struct gpu_i2c_dev *i2cd, u8 *data, u16 len) i2cd 113 drivers/i2c/busses/i2c-nvidia-gpu.c writel(val, i2cd->regs + I2C_MST_CNTL); i2cd 115 drivers/i2c/busses/i2c-nvidia-gpu.c status = gpu_i2c_check_status(i2cd); i2cd 119 drivers/i2c/busses/i2c-nvidia-gpu.c val = readl(i2cd->regs + I2C_MST_DATA); i2cd 140 drivers/i2c/busses/i2c-nvidia-gpu.c static int gpu_i2c_start(struct gpu_i2c_dev *i2cd) i2cd 142 drivers/i2c/busses/i2c-nvidia-gpu.c writel(I2C_MST_CNTL_GEN_START, i2cd->regs + I2C_MST_CNTL); i2cd 143 drivers/i2c/busses/i2c-nvidia-gpu.c return gpu_i2c_check_status(i2cd); i2cd 146 drivers/i2c/busses/i2c-nvidia-gpu.c static int gpu_i2c_stop(struct gpu_i2c_dev *i2cd) i2cd 148 drivers/i2c/busses/i2c-nvidia-gpu.c writel(I2C_MST_CNTL_GEN_STOP, i2cd->regs + I2C_MST_CNTL); i2cd 149 drivers/i2c/busses/i2c-nvidia-gpu.c return gpu_i2c_check_status(i2cd); i2cd 152 drivers/i2c/busses/i2c-nvidia-gpu.c static int gpu_i2c_write(struct gpu_i2c_dev *i2cd, u8 data) i2cd 156 drivers/i2c/busses/i2c-nvidia-gpu.c writel(data, i2cd->regs + I2C_MST_DATA); i2cd 159 drivers/i2c/busses/i2c-nvidia-gpu.c writel(val, i2cd->regs + I2C_MST_CNTL); i2cd 161 drivers/i2c/busses/i2c-nvidia-gpu.c return gpu_i2c_check_status(i2cd); i2cd 167 drivers/i2c/busses/i2c-nvidia-gpu.c struct gpu_i2c_dev *i2cd = i2c_get_adapdata(adap); i2cd 176 drivers/i2c/busses/i2c-nvidia-gpu.c pm_runtime_get_sync(i2cd->dev); i2cd 180 drivers/i2c/busses/i2c-nvidia-gpu.c writel(msgs[i].addr, i2cd->regs + I2C_MST_ADDR); i2cd 182 drivers/i2c/busses/i2c-nvidia-gpu.c status = gpu_i2c_read(i2cd, msgs[i].buf, msgs[i].len); i2cd 188 drivers/i2c/busses/i2c-nvidia-gpu.c status = gpu_i2c_start(i2cd); i2cd 195 drivers/i2c/busses/i2c-nvidia-gpu.c status = gpu_i2c_write(i2cd, addr); i2cd 200 drivers/i2c/busses/i2c-nvidia-gpu.c status = gpu_i2c_write(i2cd, msgs[i].buf[j]); i2cd 207 drivers/i2c/busses/i2c-nvidia-gpu.c status = gpu_i2c_stop(i2cd); i2cd 214 drivers/i2c/busses/i2c-nvidia-gpu.c status2 = gpu_i2c_stop(i2cd); i2cd 216 drivers/i2c/busses/i2c-nvidia-gpu.c dev_err(i2cd->dev, "i2c stop failed %d\n", status2); i2cd 218 drivers/i2c/busses/i2c-nvidia-gpu.c pm_runtime_mark_last_busy(i2cd->dev); i2cd 219 drivers/i2c/busses/i2c-nvidia-gpu.c pm_runtime_put_autosuspend(i2cd->dev); i2cd 266 drivers/i2c/busses/i2c-nvidia-gpu.c static int gpu_populate_client(struct gpu_i2c_dev *i2cd, int irq) i2cd 268 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->gpu_ccgx_ucsi = devm_kzalloc(i2cd->dev, i2cd 269 drivers/i2c/busses/i2c-nvidia-gpu.c sizeof(*i2cd->gpu_ccgx_ucsi), i2cd 271 drivers/i2c/busses/i2c-nvidia-gpu.c if (!i2cd->gpu_ccgx_ucsi) i2cd 274 drivers/i2c/busses/i2c-nvidia-gpu.c strlcpy(i2cd->gpu_ccgx_ucsi->type, "ccgx-ucsi", i2cd 275 drivers/i2c/busses/i2c-nvidia-gpu.c sizeof(i2cd->gpu_ccgx_ucsi->type)); i2cd 276 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->gpu_ccgx_ucsi->addr = 0x8; i2cd 277 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->gpu_ccgx_ucsi->irq = irq; i2cd 278 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->gpu_ccgx_ucsi->properties = ccgx_props; i2cd 279 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->ccgx_client = i2c_new_device(&i2cd->adapter, i2cd->gpu_ccgx_ucsi); i2cd 280 drivers/i2c/busses/i2c-nvidia-gpu.c if (!i2cd->ccgx_client) i2cd 288 drivers/i2c/busses/i2c-nvidia-gpu.c struct gpu_i2c_dev *i2cd; i2cd 291 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd = devm_kzalloc(&pdev->dev, sizeof(*i2cd), GFP_KERNEL); i2cd 292 drivers/i2c/busses/i2c-nvidia-gpu.c if (!i2cd) i2cd 295 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->dev = &pdev->dev; i2cd 296 drivers/i2c/busses/i2c-nvidia-gpu.c dev_set_drvdata(&pdev->dev, i2cd); i2cd 306 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->regs = pcim_iomap(pdev, 0, 0); i2cd 307 drivers/i2c/busses/i2c-nvidia-gpu.c if (!i2cd->regs) { i2cd 318 drivers/i2c/busses/i2c-nvidia-gpu.c gpu_enable_i2c_bus(i2cd); i2cd 320 drivers/i2c/busses/i2c-nvidia-gpu.c i2c_set_adapdata(&i2cd->adapter, i2cd); i2cd 321 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->adapter.owner = THIS_MODULE; i2cd 322 drivers/i2c/busses/i2c-nvidia-gpu.c strlcpy(i2cd->adapter.name, "NVIDIA GPU I2C adapter", i2cd 323 drivers/i2c/busses/i2c-nvidia-gpu.c sizeof(i2cd->adapter.name)); i2cd 324 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->adapter.algo = &gpu_i2c_algorithm; i2cd 325 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->adapter.quirks = &gpu_i2c_quirks; i2cd 326 drivers/i2c/busses/i2c-nvidia-gpu.c i2cd->adapter.dev.parent = &pdev->dev; i2cd 327 drivers/i2c/busses/i2c-nvidia-gpu.c status = i2c_add_adapter(&i2cd->adapter); i2cd 331 drivers/i2c/busses/i2c-nvidia-gpu.c status = gpu_populate_client(i2cd, pdev->irq); i2cd 345 drivers/i2c/busses/i2c-nvidia-gpu.c i2c_del_adapter(&i2cd->adapter); i2cd 353 drivers/i2c/busses/i2c-nvidia-gpu.c struct gpu_i2c_dev *i2cd = dev_get_drvdata(&pdev->dev); i2cd 355 drivers/i2c/busses/i2c-nvidia-gpu.c pm_runtime_get_noresume(i2cd->dev); i2cd 356 drivers/i2c/busses/i2c-nvidia-gpu.c i2c_del_adapter(&i2cd->adapter); i2cd 372 drivers/i2c/busses/i2c-nvidia-gpu.c struct gpu_i2c_dev *i2cd = dev_get_drvdata(dev); i2cd 374 drivers/i2c/busses/i2c-nvidia-gpu.c gpu_enable_i2c_bus(i2cd); i2cd 381 drivers/i2c/busses/i2c-nvidia-gpu.c pm_request_resume(&i2cd->ccgx_client->dev);