plgpio            110 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = gpiochip_get_data(chip);
plgpio            114 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->p2o && (plgpio->p2o_regs & PTO_DIR_REG)) {
plgpio            115 drivers/pinctrl/spear/pinctrl-plgpio.c 		offset = plgpio->p2o(offset);
plgpio            120 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_lock_irqsave(&plgpio->lock, flags);
plgpio            121 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio_reg_set(plgpio->base, offset, plgpio->regs.dir);
plgpio            122 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_unlock_irqrestore(&plgpio->lock, flags);
plgpio            130 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = gpiochip_get_data(chip);
plgpio            135 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->p2o && (plgpio->p2o_regs & (PTO_DIR_REG | PTO_WDATA_REG))) {
plgpio            136 drivers/pinctrl/spear/pinctrl-plgpio.c 		tmp = plgpio->p2o(offset);
plgpio            140 drivers/pinctrl/spear/pinctrl-plgpio.c 		if (plgpio->p2o_regs & PTO_DIR_REG)
plgpio            142 drivers/pinctrl/spear/pinctrl-plgpio.c 		if (plgpio->p2o_regs & PTO_WDATA_REG)
plgpio            146 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_lock_irqsave(&plgpio->lock, flags);
plgpio            148 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio_reg_set(plgpio->base, wdata_offset,
plgpio            149 drivers/pinctrl/spear/pinctrl-plgpio.c 				plgpio->regs.wdata);
plgpio            151 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio_reg_reset(plgpio->base, wdata_offset,
plgpio            152 drivers/pinctrl/spear/pinctrl-plgpio.c 				plgpio->regs.wdata);
plgpio            154 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio_reg_reset(plgpio->base, dir_offset, plgpio->regs.dir);
plgpio            155 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_unlock_irqrestore(&plgpio->lock, flags);
plgpio            162 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = gpiochip_get_data(chip);
plgpio            168 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->p2o && (plgpio->p2o_regs & PTO_RDATA_REG)) {
plgpio            169 drivers/pinctrl/spear/pinctrl-plgpio.c 		offset = plgpio->p2o(offset);
plgpio            174 drivers/pinctrl/spear/pinctrl-plgpio.c 	return is_plgpio_set(plgpio->base, offset, plgpio->regs.rdata);
plgpio            179 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = gpiochip_get_data(chip);
plgpio            185 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->p2o && (plgpio->p2o_regs & PTO_WDATA_REG)) {
plgpio            186 drivers/pinctrl/spear/pinctrl-plgpio.c 		offset = plgpio->p2o(offset);
plgpio            192 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio_reg_set(plgpio->base, offset, plgpio->regs.wdata);
plgpio            194 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio_reg_reset(plgpio->base, offset, plgpio->regs.wdata);
plgpio            199 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = gpiochip_get_data(chip);
plgpio            211 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (!IS_ERR(plgpio->clk)) {
plgpio            212 drivers/pinctrl/spear/pinctrl-plgpio.c 		ret = clk_enable(plgpio->clk);
plgpio            217 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->regs.enb == -1)
plgpio            228 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->p2o && (plgpio->p2o_regs & PTO_ENB_REG)) {
plgpio            229 drivers/pinctrl/spear/pinctrl-plgpio.c 		offset = plgpio->p2o(offset);
plgpio            236 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_lock_irqsave(&plgpio->lock, flags);
plgpio            237 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio_reg_set(plgpio->base, offset, plgpio->regs.enb);
plgpio            238 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_unlock_irqrestore(&plgpio->lock, flags);
plgpio            242 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (!IS_ERR(plgpio->clk))
plgpio            243 drivers/pinctrl/spear/pinctrl-plgpio.c 		clk_disable(plgpio->clk);
plgpio            251 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = gpiochip_get_data(chip);
plgpio            258 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->regs.enb == -1)
plgpio            262 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->p2o && (plgpio->p2o_regs & PTO_ENB_REG)) {
plgpio            263 drivers/pinctrl/spear/pinctrl-plgpio.c 		offset = plgpio->p2o(offset);
plgpio            268 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_lock_irqsave(&plgpio->lock, flags);
plgpio            269 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio_reg_reset(plgpio->base, offset, plgpio->regs.enb);
plgpio            270 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_unlock_irqrestore(&plgpio->lock, flags);
plgpio            273 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (!IS_ERR(plgpio->clk))
plgpio            274 drivers/pinctrl/spear/pinctrl-plgpio.c 		clk_disable(plgpio->clk);
plgpio            283 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = gpiochip_get_data(gc);
plgpio            288 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->p2o && (plgpio->p2o_regs & PTO_IE_REG)) {
plgpio            289 drivers/pinctrl/spear/pinctrl-plgpio.c 		offset = plgpio->p2o(offset);
plgpio            294 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_lock_irqsave(&plgpio->lock, flags);
plgpio            295 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio_reg_set(plgpio->base, offset, plgpio->regs.ie);
plgpio            296 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_unlock_irqrestore(&plgpio->lock, flags);
plgpio            302 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = gpiochip_get_data(gc);
plgpio            307 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->p2o && (plgpio->p2o_regs & PTO_IE_REG)) {
plgpio            308 drivers/pinctrl/spear/pinctrl-plgpio.c 		offset = plgpio->p2o(offset);
plgpio            313 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_lock_irqsave(&plgpio->lock, flags);
plgpio            314 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio_reg_reset(plgpio->base, offset, plgpio->regs.ie);
plgpio            315 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_unlock_irqrestore(&plgpio->lock, flags);
plgpio            321 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = gpiochip_get_data(gc);
plgpio            326 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (offset >= plgpio->chip.ngpio)
plgpio            329 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->regs.eit == -1)
plgpio            337 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (plgpio->regs.eit == -1)
plgpio            340 drivers/pinctrl/spear/pinctrl-plgpio.c 	reg_off = REG_OFFSET(plgpio->base, plgpio->regs.eit, offset);
plgpio            362 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = gpiochip_get_data(gc);
plgpio            367 drivers/pinctrl/spear/pinctrl-plgpio.c 	count = plgpio->chip.ngpio;
plgpio            373 drivers/pinctrl/spear/pinctrl-plgpio.c 		pending = readl_relaxed(plgpio->base + plgpio->regs.mis +
plgpio            379 drivers/pinctrl/spear/pinctrl-plgpio.c 		writel_relaxed(~pending, plgpio->base + plgpio->regs.mis +
plgpio            394 drivers/pinctrl/spear/pinctrl-plgpio.c 			if (plgpio->o2p && (plgpio->p2o_regs & PTO_MIS_REG)) {
plgpio            395 drivers/pinctrl/spear/pinctrl-plgpio.c 				pin = plgpio->o2p(offset);
plgpio            445 drivers/pinctrl/spear/pinctrl-plgpio.c static int plgpio_probe_dt(struct platform_device *pdev, struct plgpio *plgpio)
plgpio            452 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->p2o = spear310_p2o;
plgpio            453 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->o2p = spear310_o2p;
plgpio            454 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->p2o_regs = PTO_WDATA_REG | PTO_DIR_REG | PTO_IE_REG |
plgpio            459 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->chip.ngpio = val;
plgpio            466 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->regs.enb = val;
plgpio            468 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->regs.enb = -1;
plgpio            471 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->regs.wdata = val;
plgpio            478 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->regs.dir = val;
plgpio            485 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->regs.ie = val;
plgpio            492 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->regs.rdata = val;
plgpio            499 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->regs.mis = val;
plgpio            506 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->regs.eit = val;
plgpio            508 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->regs.eit = -1;
plgpio            517 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio;
plgpio            521 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio = devm_kzalloc(&pdev->dev, sizeof(*plgpio), GFP_KERNEL);
plgpio            522 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (!plgpio)
plgpio            526 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->base = devm_ioremap_resource(&pdev->dev, res);
plgpio            527 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (IS_ERR(plgpio->base))
plgpio            528 drivers/pinctrl/spear/pinctrl-plgpio.c 		return PTR_ERR(plgpio->base);
plgpio            530 drivers/pinctrl/spear/pinctrl-plgpio.c 	ret = plgpio_probe_dt(pdev, plgpio);
plgpio            536 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->clk = devm_clk_get(&pdev->dev, NULL);
plgpio            537 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (IS_ERR(plgpio->clk))
plgpio            541 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->csave_regs = devm_kcalloc(&pdev->dev,
plgpio            542 drivers/pinctrl/spear/pinctrl-plgpio.c 			DIV_ROUND_UP(plgpio->chip.ngpio, MAX_GPIO_PER_REG),
plgpio            543 drivers/pinctrl/spear/pinctrl-plgpio.c 			sizeof(*plgpio->csave_regs),
plgpio            545 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (!plgpio->csave_regs)
plgpio            549 drivers/pinctrl/spear/pinctrl-plgpio.c 	platform_set_drvdata(pdev, plgpio);
plgpio            550 drivers/pinctrl/spear/pinctrl-plgpio.c 	spin_lock_init(&plgpio->lock);
plgpio            552 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.base = -1;
plgpio            553 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.request = plgpio_request;
plgpio            554 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.free = plgpio_free;
plgpio            555 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.direction_input = plgpio_direction_input;
plgpio            556 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.direction_output = plgpio_direction_output;
plgpio            557 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.get = plgpio_get_value;
plgpio            558 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.set = plgpio_set_value;
plgpio            559 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.label = dev_name(&pdev->dev);
plgpio            560 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.parent = &pdev->dev;
plgpio            561 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.owner = THIS_MODULE;
plgpio            562 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->chip.of_node = pdev->dev.of_node;
plgpio            564 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (!IS_ERR(plgpio->clk)) {
plgpio            565 drivers/pinctrl/spear/pinctrl-plgpio.c 		ret = clk_prepare(plgpio->clk);
plgpio            572 drivers/pinctrl/spear/pinctrl-plgpio.c 	ret = gpiochip_add_data(&plgpio->chip, plgpio);
plgpio            584 drivers/pinctrl/spear/pinctrl-plgpio.c 	ret = gpiochip_irqchip_add(&plgpio->chip,
plgpio            594 drivers/pinctrl/spear/pinctrl-plgpio.c 	gpiochip_set_chained_irqchip(&plgpio->chip,
plgpio            605 drivers/pinctrl/spear/pinctrl-plgpio.c 	gpiochip_remove(&plgpio->chip);
plgpio            607 drivers/pinctrl/spear/pinctrl-plgpio.c 	if (!IS_ERR(plgpio->clk))
plgpio            608 drivers/pinctrl/spear/pinctrl-plgpio.c 		clk_unprepare(plgpio->clk);
plgpio            616 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = dev_get_drvdata(dev);
plgpio            617 drivers/pinctrl/spear/pinctrl-plgpio.c 	int i, reg_count = DIV_ROUND_UP(plgpio->chip.ngpio, MAX_GPIO_PER_REG);
plgpio            621 drivers/pinctrl/spear/pinctrl-plgpio.c 		off = plgpio->base + i * sizeof(int *);
plgpio            623 drivers/pinctrl/spear/pinctrl-plgpio.c 		if (plgpio->regs.enb != -1)
plgpio            624 drivers/pinctrl/spear/pinctrl-plgpio.c 			plgpio->csave_regs[i].enb =
plgpio            625 drivers/pinctrl/spear/pinctrl-plgpio.c 				readl_relaxed(plgpio->regs.enb + off);
plgpio            626 drivers/pinctrl/spear/pinctrl-plgpio.c 		if (plgpio->regs.eit != -1)
plgpio            627 drivers/pinctrl/spear/pinctrl-plgpio.c 			plgpio->csave_regs[i].eit =
plgpio            628 drivers/pinctrl/spear/pinctrl-plgpio.c 				readl_relaxed(plgpio->regs.eit + off);
plgpio            629 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->csave_regs[i].wdata = readl_relaxed(plgpio->regs.wdata +
plgpio            631 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->csave_regs[i].dir = readl_relaxed(plgpio->regs.dir +
plgpio            633 drivers/pinctrl/spear/pinctrl-plgpio.c 		plgpio->csave_regs[i].ie = readl_relaxed(plgpio->regs.ie + off);
plgpio            647 drivers/pinctrl/spear/pinctrl-plgpio.c 	_tmp = readl_relaxed(plgpio->regs.__reg + _off);		\
plgpio            649 drivers/pinctrl/spear/pinctrl-plgpio.c 	plgpio->csave_regs[i].__reg =				\
plgpio            650 drivers/pinctrl/spear/pinctrl-plgpio.c 		_tmp | (plgpio->csave_regs[i].__reg & _mask);	\
plgpio            655 drivers/pinctrl/spear/pinctrl-plgpio.c 	struct plgpio *plgpio = dev_get_drvdata(dev);
plgpio            656 drivers/pinctrl/spear/pinctrl-plgpio.c 	int i, reg_count = DIV_ROUND_UP(plgpio->chip.ngpio, MAX_GPIO_PER_REG);
plgpio            661 drivers/pinctrl/spear/pinctrl-plgpio.c 		off = plgpio->base + i * sizeof(int *);
plgpio            664 drivers/pinctrl/spear/pinctrl-plgpio.c 			mask = (1 << (plgpio->chip.ngpio - i *
plgpio            667 drivers/pinctrl/spear/pinctrl-plgpio.c 			if (plgpio->regs.enb != -1)
plgpio            670 drivers/pinctrl/spear/pinctrl-plgpio.c 			if (plgpio->regs.eit != -1)
plgpio            678 drivers/pinctrl/spear/pinctrl-plgpio.c 		writel_relaxed(plgpio->csave_regs[i].wdata, plgpio->regs.wdata +
plgpio            680 drivers/pinctrl/spear/pinctrl-plgpio.c 		writel_relaxed(plgpio->csave_regs[i].dir, plgpio->regs.dir +
plgpio            683 drivers/pinctrl/spear/pinctrl-plgpio.c 		if (plgpio->regs.eit != -1)
plgpio            684 drivers/pinctrl/spear/pinctrl-plgpio.c 			writel_relaxed(plgpio->csave_regs[i].eit,
plgpio            685 drivers/pinctrl/spear/pinctrl-plgpio.c 					plgpio->regs.eit + off);
plgpio            687 drivers/pinctrl/spear/pinctrl-plgpio.c 		writel_relaxed(plgpio->csave_regs[i].ie, plgpio->regs.ie + off);
plgpio            689 drivers/pinctrl/spear/pinctrl-plgpio.c 		if (plgpio->regs.enb != -1)
plgpio            690 drivers/pinctrl/spear/pinctrl-plgpio.c 			writel_relaxed(plgpio->csave_regs[i].enb,
plgpio            691 drivers/pinctrl/spear/pinctrl-plgpio.c 					plgpio->regs.enb + off);