Lines Matching refs:pdata

71 	void (*setup)(struct lpss_private_data *pdata);
91 static void lpss_uart_setup(struct lpss_private_data *pdata) in lpss_uart_setup() argument
96 offset = pdata->dev_desc->prv_offset + LPSS_TX_INT; in lpss_uart_setup()
97 val = readl(pdata->mmio_base + offset); in lpss_uart_setup()
98 writel(val | LPSS_TX_INT_MASK, pdata->mmio_base + offset); in lpss_uart_setup()
100 val = readl(pdata->mmio_base + LPSS_UART_CPR); in lpss_uart_setup()
102 offset = pdata->dev_desc->prv_offset + LPSS_GENERAL; in lpss_uart_setup()
103 val = readl(pdata->mmio_base + offset); in lpss_uart_setup()
105 writel(val, pdata->mmio_base + offset); in lpss_uart_setup()
109 static void lpss_deassert_reset(struct lpss_private_data *pdata) in lpss_deassert_reset() argument
114 offset = pdata->dev_desc->prv_offset + LPSS_RESETS; in lpss_deassert_reset()
115 val = readl(pdata->mmio_base + offset); in lpss_deassert_reset()
117 writel(val, pdata->mmio_base + offset); in lpss_deassert_reset()
122 static void byt_i2c_setup(struct lpss_private_data *pdata) in byt_i2c_setup() argument
124 lpss_deassert_reset(pdata); in byt_i2c_setup()
126 if (readl(pdata->mmio_base + pdata->dev_desc->prv_offset)) in byt_i2c_setup()
127 pdata->fixed_clk_rate = 133000000; in byt_i2c_setup()
129 writel(0, pdata->mmio_base + LPSS_I2C_ENABLE); in byt_i2c_setup()
254 struct lpss_private_data *pdata) in register_device_clock() argument
256 const struct lpss_device_desc *dev_desc = pdata->dev_desc; in register_device_clock()
271 if (!pdata->mmio_base in register_device_clock()
272 || pdata->mmio_size < dev_desc->prv_offset + LPSS_CLK_SIZE) in register_device_clock()
276 prv_base = pdata->mmio_base + dev_desc->prv_offset; in register_device_clock()
278 if (pdata->fixed_clk_rate) { in register_device_clock()
280 pdata->fixed_clk_rate); in register_device_clock()
318 pdata->clk = clk; in register_device_clock()
327 struct lpss_private_data *pdata; in acpi_lpss_create_device() local
338 pdata = kzalloc(sizeof(*pdata), GFP_KERNEL); in acpi_lpss_create_device()
339 if (!pdata) in acpi_lpss_create_device()
350 pdata->mmio_size = dev_desc->prv_size_override; in acpi_lpss_create_device()
352 pdata->mmio_size = resource_size(rentry->res); in acpi_lpss_create_device()
353 pdata->mmio_base = ioremap(rentry->res->start, in acpi_lpss_create_device()
354 pdata->mmio_size); in acpi_lpss_create_device()
360 if (!pdata->mmio_base) { in acpi_lpss_create_device()
365 pdata->dev_desc = dev_desc; in acpi_lpss_create_device()
368 dev_desc->setup(pdata); in acpi_lpss_create_device()
371 ret = register_device_clock(adev, pdata); in acpi_lpss_create_device()
391 adev->driver_data = pdata; in acpi_lpss_create_device()
401 kfree(pdata); in acpi_lpss_create_device()
405 static u32 __lpss_reg_read(struct lpss_private_data *pdata, unsigned int reg) in __lpss_reg_read() argument
407 return readl(pdata->mmio_base + pdata->dev_desc->prv_offset + reg); in __lpss_reg_read()
410 static void __lpss_reg_write(u32 val, struct lpss_private_data *pdata, in __lpss_reg_write() argument
413 writel(val, pdata->mmio_base + pdata->dev_desc->prv_offset + reg); in __lpss_reg_write()
419 struct lpss_private_data *pdata; in lpss_reg_read() local
432 pdata = acpi_driver_data(adev); in lpss_reg_read()
433 if (WARN_ON(!pdata || !pdata->mmio_base)) { in lpss_reg_read()
437 *val = __lpss_reg_read(pdata, reg); in lpss_reg_read()
492 struct lpss_private_data *pdata = acpi_driver_data(ACPI_COMPANION(dev)); in acpi_lpss_set_ltr() local
495 ltr_mode = __lpss_reg_read(pdata, LPSS_GENERAL); in acpi_lpss_set_ltr()
499 __lpss_reg_write(ltr_mode, pdata, LPSS_GENERAL); in acpi_lpss_set_ltr()
503 ltr_val = __lpss_reg_read(pdata, LPSS_SW_LTR) & ~LPSS_LTR_SNOOP_MASK; in acpi_lpss_set_ltr()
514 __lpss_reg_write(ltr_val, pdata, LPSS_SW_LTR); in acpi_lpss_set_ltr()
517 __lpss_reg_write(ltr_mode, pdata, LPSS_GENERAL); in acpi_lpss_set_ltr()
532 struct lpss_private_data *pdata) in acpi_lpss_save_ctx() argument
539 pdata->prv_reg_ctx[i] = __lpss_reg_read(pdata, offset); in acpi_lpss_save_ctx()
541 pdata->prv_reg_ctx[i], offset); in acpi_lpss_save_ctx()
553 struct lpss_private_data *pdata) in acpi_lpss_restore_ctx() argument
568 __lpss_reg_write(pdata->prv_reg_ctx[i], pdata, offset); in acpi_lpss_restore_ctx()
570 pdata->prv_reg_ctx[i], offset); in acpi_lpss_restore_ctx()
577 struct lpss_private_data *pdata = acpi_driver_data(ACPI_COMPANION(dev)); in acpi_lpss_suspend_late() local
584 if (pdata->dev_desc->flags & LPSS_SAVE_CTX) in acpi_lpss_suspend_late()
585 acpi_lpss_save_ctx(dev, pdata); in acpi_lpss_suspend_late()
592 struct lpss_private_data *pdata = acpi_driver_data(ACPI_COMPANION(dev)); in acpi_lpss_resume_early() local
599 if (pdata->dev_desc->flags & LPSS_SAVE_CTX) in acpi_lpss_resume_early()
600 acpi_lpss_restore_ctx(dev, pdata); in acpi_lpss_resume_early()
608 struct lpss_private_data *pdata = acpi_driver_data(ACPI_COMPANION(dev)); in acpi_lpss_runtime_suspend() local
615 if (pdata->dev_desc->flags & LPSS_SAVE_CTX) in acpi_lpss_runtime_suspend()
616 acpi_lpss_save_ctx(dev, pdata); in acpi_lpss_runtime_suspend()
623 struct lpss_private_data *pdata = acpi_driver_data(ACPI_COMPANION(dev)); in acpi_lpss_runtime_resume() local
630 if (pdata->dev_desc->flags & LPSS_SAVE_CTX) in acpi_lpss_runtime_resume()
631 acpi_lpss_restore_ctx(dev, pdata); in acpi_lpss_runtime_resume()
661 struct lpss_private_data *pdata; in acpi_lpss_platform_notify() local
672 pdata = acpi_driver_data(adev); in acpi_lpss_platform_notify()
673 if (!pdata) in acpi_lpss_platform_notify()
676 if (pdata->mmio_base && in acpi_lpss_platform_notify()
677 pdata->mmio_size < pdata->dev_desc->prv_offset + LPSS_LTR_SIZE) { in acpi_lpss_platform_notify()
685 if (pdata->dev_desc->flags & LPSS_LTR) in acpi_lpss_platform_notify()
690 if (pdata->dev_desc->flags & LPSS_LTR) in acpi_lpss_platform_notify()
707 struct lpss_private_data *pdata = acpi_driver_data(ACPI_COMPANION(dev)); in acpi_lpss_bind() local
709 if (!pdata || !pdata->mmio_base || !(pdata->dev_desc->flags & LPSS_LTR)) in acpi_lpss_bind()
712 if (pdata->mmio_size >= pdata->dev_desc->prv_offset + LPSS_LTR_SIZE) in acpi_lpss_bind()