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);