Lines Matching refs:priv

145 static u32 socfpga_fpga_readl(struct socfpga_fpga_priv *priv, u32 reg_offset)  in socfpga_fpga_readl()  argument
147 return readl(priv->fpga_base_addr + reg_offset); in socfpga_fpga_readl()
150 static void socfpga_fpga_writel(struct socfpga_fpga_priv *priv, u32 reg_offset, in socfpga_fpga_writel() argument
153 writel(value, priv->fpga_base_addr + reg_offset); in socfpga_fpga_writel()
156 static u32 socfpga_fpga_raw_readl(struct socfpga_fpga_priv *priv, in socfpga_fpga_raw_readl() argument
159 return __raw_readl(priv->fpga_base_addr + reg_offset); in socfpga_fpga_raw_readl()
162 static void socfpga_fpga_raw_writel(struct socfpga_fpga_priv *priv, in socfpga_fpga_raw_writel() argument
165 __raw_writel(value, priv->fpga_base_addr + reg_offset); in socfpga_fpga_raw_writel()
168 static void socfpga_fpga_data_writel(struct socfpga_fpga_priv *priv, u32 value) in socfpga_fpga_data_writel() argument
170 writel(value, priv->fpga_data_addr); in socfpga_fpga_data_writel()
173 static inline void socfpga_fpga_set_bitsl(struct socfpga_fpga_priv *priv, in socfpga_fpga_set_bitsl() argument
178 val = socfpga_fpga_readl(priv, offset); in socfpga_fpga_set_bitsl()
180 socfpga_fpga_writel(priv, offset, val); in socfpga_fpga_set_bitsl()
183 static inline void socfpga_fpga_clr_bitsl(struct socfpga_fpga_priv *priv, in socfpga_fpga_clr_bitsl() argument
188 val = socfpga_fpga_readl(priv, offset); in socfpga_fpga_clr_bitsl()
190 socfpga_fpga_writel(priv, offset, val); in socfpga_fpga_clr_bitsl()
193 static u32 socfpga_fpga_mon_status_get(struct socfpga_fpga_priv *priv) in socfpga_fpga_mon_status_get() argument
195 return socfpga_fpga_readl(priv, SOCFPGA_FPGMGR_GPIO_EXT_PORTA_OFST) & in socfpga_fpga_mon_status_get()
199 static u32 socfpga_fpga_state_get(struct socfpga_fpga_priv *priv) in socfpga_fpga_state_get() argument
201 u32 status = socfpga_fpga_mon_status_get(priv); in socfpga_fpga_state_get()
206 return socfpga_fpga_readl(priv, SOCFPGA_FPGMGR_STAT_OFST) & in socfpga_fpga_state_get()
210 static void socfpga_fpga_clear_done_status(struct socfpga_fpga_priv *priv) in socfpga_fpga_clear_done_status() argument
212 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_DCLKSTAT_OFST, in socfpga_fpga_clear_done_status()
220 static int socfpga_fpga_dclk_set_and_wait_clear(struct socfpga_fpga_priv *priv, in socfpga_fpga_dclk_set_and_wait_clear() argument
227 if (socfpga_fpga_readl(priv, SOCFPGA_FPGMGR_DCLKSTAT_OFST)) in socfpga_fpga_dclk_set_and_wait_clear()
228 socfpga_fpga_clear_done_status(priv); in socfpga_fpga_dclk_set_and_wait_clear()
231 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_DCLKCNT_OFST, count); in socfpga_fpga_dclk_set_and_wait_clear()
235 done = socfpga_fpga_readl(priv, SOCFPGA_FPGMGR_DCLKSTAT_OFST); in socfpga_fpga_dclk_set_and_wait_clear()
237 socfpga_fpga_clear_done_status(priv); in socfpga_fpga_dclk_set_and_wait_clear()
246 static int socfpga_fpga_wait_for_state(struct socfpga_fpga_priv *priv, in socfpga_fpga_wait_for_state() argument
256 if ((socfpga_fpga_state_get(priv) & state) != 0) in socfpga_fpga_wait_for_state()
264 static void socfpga_fpga_enable_irqs(struct socfpga_fpga_priv *priv, u32 irqs) in socfpga_fpga_enable_irqs() argument
267 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_GPIO_INTTYPE_LEVEL_OFST, 0); in socfpga_fpga_enable_irqs()
270 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_GPIO_INT_POL_OFST, irqs); in socfpga_fpga_enable_irqs()
273 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_GPIO_PORTA_EOI_OFST, irqs); in socfpga_fpga_enable_irqs()
276 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_GPIO_INTMSK_OFST, 0); in socfpga_fpga_enable_irqs()
279 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_GPIO_INTEN_OFST, irqs); in socfpga_fpga_enable_irqs()
282 static void socfpga_fpga_disable_irqs(struct socfpga_fpga_priv *priv) in socfpga_fpga_disable_irqs() argument
284 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_GPIO_INTEN_OFST, 0); in socfpga_fpga_disable_irqs()
289 struct socfpga_fpga_priv *priv = dev_id; in socfpga_fpga_isr() local
294 irqs = socfpga_fpga_raw_readl(priv, SOCFPGA_FPGMGR_GPIO_INTSTAT_OFST); in socfpga_fpga_isr()
296 socfpga_fpga_raw_writel(priv, SOCFPGA_FPGMGR_GPIO_PORTA_EOI_OFST, irqs); in socfpga_fpga_isr()
298 st = socfpga_fpga_raw_readl(priv, SOCFPGA_FPGMGR_GPIO_EXT_PORTA_OFST); in socfpga_fpga_isr()
305 socfpga_fpga_raw_writel(priv, in socfpga_fpga_isr()
307 complete(&priv->status_complete); in socfpga_fpga_isr()
313 static int socfpga_fpga_wait_for_config_done(struct socfpga_fpga_priv *priv) in socfpga_fpga_wait_for_config_done() argument
317 socfpga_fpga_disable_irqs(priv); in socfpga_fpga_wait_for_config_done()
318 init_completion(&priv->status_complete); in socfpga_fpga_wait_for_config_done()
319 socfpga_fpga_enable_irqs(priv, SOCFPGA_FPGMGR_MON_CONF_DONE); in socfpga_fpga_wait_for_config_done()
322 &priv->status_complete, in socfpga_fpga_wait_for_config_done()
327 socfpga_fpga_disable_irqs(priv); in socfpga_fpga_wait_for_config_done()
331 static int socfpga_fpga_cfg_mode_get(struct socfpga_fpga_priv *priv) in socfpga_fpga_cfg_mode_get() argument
335 msel = socfpga_fpga_readl(priv, SOCFPGA_FPGMGR_STAT_OFST); in socfpga_fpga_cfg_mode_get()
346 static int socfpga_fpga_cfg_mode_set(struct socfpga_fpga_priv *priv) in socfpga_fpga_cfg_mode_set() argument
352 mode = socfpga_fpga_cfg_mode_get(priv); in socfpga_fpga_cfg_mode_set()
357 ctrl_reg = socfpga_fpga_readl(priv, SOCFPGA_FPGMGR_CTL_OFST); in socfpga_fpga_cfg_mode_set()
364 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_CTL_OFST, ctrl_reg); in socfpga_fpga_cfg_mode_set()
371 struct socfpga_fpga_priv *priv = mgr->priv; in socfpga_fpga_reset() local
380 ret = socfpga_fpga_cfg_mode_set(priv); in socfpga_fpga_reset()
385 socfpga_fpga_set_bitsl(priv, SOCFPGA_FPGMGR_CTL_OFST, in socfpga_fpga_reset()
389 ctrl_reg = socfpga_fpga_readl(priv, SOCFPGA_FPGMGR_CTL_OFST); in socfpga_fpga_reset()
391 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_CTL_OFST, ctrl_reg); in socfpga_fpga_reset()
394 status = socfpga_fpga_wait_for_state(priv, SOCFPGA_FPGMGR_STAT_RESET); in socfpga_fpga_reset()
398 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_CTL_OFST, ctrl_reg); in socfpga_fpga_reset()
413 struct socfpga_fpga_priv *priv = mgr->priv; in socfpga_fpga_ops_configure_init() local
426 if (socfpga_fpga_wait_for_state(priv, SOCFPGA_FPGMGR_STAT_CFG)) in socfpga_fpga_ops_configure_init()
430 socfpga_fpga_writel(priv, SOCFPGA_FPGMGR_GPIO_PORTA_EOI_OFST, in socfpga_fpga_ops_configure_init()
434 socfpga_fpga_set_bitsl(priv, SOCFPGA_FPGMGR_CTL_OFST, in socfpga_fpga_ops_configure_init()
446 struct socfpga_fpga_priv *priv = mgr->priv; in socfpga_fpga_ops_configure_write() local
455 socfpga_fpga_data_writel(priv, buffer_32[i++]); in socfpga_fpga_ops_configure_write()
462 socfpga_fpga_data_writel(priv, buffer_32[i++] & 0x00ffffff); in socfpga_fpga_ops_configure_write()
465 socfpga_fpga_data_writel(priv, buffer_32[i++] & 0x0000ffff); in socfpga_fpga_ops_configure_write()
468 socfpga_fpga_data_writel(priv, buffer_32[i++] & 0x000000ff); in socfpga_fpga_ops_configure_write()
483 struct socfpga_fpga_priv *priv = mgr->priv; in socfpga_fpga_ops_configure_complete() local
492 status = socfpga_fpga_wait_for_config_done(priv); in socfpga_fpga_ops_configure_complete()
497 socfpga_fpga_clr_bitsl(priv, SOCFPGA_FPGMGR_CTL_OFST, in socfpga_fpga_ops_configure_complete()
506 if (socfpga_fpga_dclk_set_and_wait_clear(priv, 4)) in socfpga_fpga_ops_configure_complete()
510 if (socfpga_fpga_wait_for_state(priv, SOCFPGA_FPGMGR_STAT_USER_MODE)) in socfpga_fpga_ops_configure_complete()
514 socfpga_fpga_clr_bitsl(priv, SOCFPGA_FPGMGR_CTL_OFST, in socfpga_fpga_ops_configure_complete()
532 struct socfpga_fpga_priv *priv = mgr->priv; in socfpga_fpga_ops_state() local
536 state = socfpga_fpga_state_get(priv); in socfpga_fpga_ops_state()
556 struct socfpga_fpga_priv *priv; in socfpga_fpga_probe() local
560 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); in socfpga_fpga_probe()
561 if (!priv) in socfpga_fpga_probe()
565 priv->fpga_base_addr = devm_ioremap_resource(dev, res); in socfpga_fpga_probe()
566 if (IS_ERR(priv->fpga_base_addr)) in socfpga_fpga_probe()
567 return PTR_ERR(priv->fpga_base_addr); in socfpga_fpga_probe()
570 priv->fpga_data_addr = devm_ioremap_resource(dev, res); in socfpga_fpga_probe()
571 if (IS_ERR(priv->fpga_data_addr)) in socfpga_fpga_probe()
572 return PTR_ERR(priv->fpga_data_addr); in socfpga_fpga_probe()
574 priv->irq = platform_get_irq(pdev, 0); in socfpga_fpga_probe()
575 if (priv->irq < 0) in socfpga_fpga_probe()
576 return priv->irq; in socfpga_fpga_probe()
578 ret = devm_request_irq(dev, priv->irq, socfpga_fpga_isr, 0, in socfpga_fpga_probe()
579 dev_name(dev), priv); in socfpga_fpga_probe()
584 &socfpga_fpga_ops, priv); in socfpga_fpga_probe()