Searched refs:spics (Results 1 - 1 of 1) sorted by relevance

/linux-4.1.27/drivers/gpio/
H A Dgpio-spear-spics.c65 struct spear_spics *spics = container_of(chip, struct spear_spics, spics_set_value() local
70 tmp = readl_relaxed(spics->base + spics->perip_cfg); spics_set_value()
71 if (spics->last_off != offset) { spics_set_value()
72 spics->last_off = offset; spics_set_value()
73 tmp &= ~(spics->cs_enable_mask << spics->cs_enable_shift); spics_set_value()
74 tmp |= offset << spics->cs_enable_shift; spics_set_value()
78 tmp &= ~(0x1 << spics->cs_value_bit); spics_set_value()
79 tmp |= value << spics->cs_value_bit; spics_set_value()
80 writel_relaxed(tmp, spics->base + spics->perip_cfg); spics_set_value()
97 struct spear_spics *spics = container_of(chip, struct spear_spics, spics_request() local
101 if (!spics->use_count++) { spics_request()
102 tmp = readl_relaxed(spics->base + spics->perip_cfg); spics_request()
103 tmp |= 0x1 << spics->sw_enable_bit; spics_request()
104 tmp |= 0x1 << spics->cs_value_bit; spics_request()
105 writel_relaxed(tmp, spics->base + spics->perip_cfg); spics_request()
113 struct spear_spics *spics = container_of(chip, struct spear_spics, spics_free() local
117 if (!--spics->use_count) { spics_free()
118 tmp = readl_relaxed(spics->base + spics->perip_cfg); spics_free()
119 tmp &= ~(0x1 << spics->sw_enable_bit); spics_free()
120 writel_relaxed(tmp, spics->base + spics->perip_cfg); spics_free()
127 struct spear_spics *spics; spics_gpio_probe() local
131 spics = devm_kzalloc(&pdev->dev, sizeof(*spics), GFP_KERNEL); spics_gpio_probe()
132 if (!spics) spics_gpio_probe()
136 spics->base = devm_ioremap_resource(&pdev->dev, res); spics_gpio_probe()
137 if (IS_ERR(spics->base)) spics_gpio_probe()
138 return PTR_ERR(spics->base); spics_gpio_probe()
140 if (of_property_read_u32(np, "st-spics,peripcfg-reg", spics_gpio_probe()
141 &spics->perip_cfg)) spics_gpio_probe()
143 if (of_property_read_u32(np, "st-spics,sw-enable-bit", spics_gpio_probe()
144 &spics->sw_enable_bit)) spics_gpio_probe()
146 if (of_property_read_u32(np, "st-spics,cs-value-bit", spics_gpio_probe()
147 &spics->cs_value_bit)) spics_gpio_probe()
149 if (of_property_read_u32(np, "st-spics,cs-enable-mask", spics_gpio_probe()
150 &spics->cs_enable_mask)) spics_gpio_probe()
152 if (of_property_read_u32(np, "st-spics,cs-enable-shift", spics_gpio_probe()
153 &spics->cs_enable_shift)) spics_gpio_probe()
156 platform_set_drvdata(pdev, spics); spics_gpio_probe()
158 spics->chip.ngpio = NUM_OF_GPIO; spics_gpio_probe()
159 spics->chip.base = -1; spics_gpio_probe()
160 spics->chip.request = spics_request; spics_gpio_probe()
161 spics->chip.free = spics_free; spics_gpio_probe()
162 spics->chip.direction_input = spics_direction_input; spics_gpio_probe()
163 spics->chip.direction_output = spics_direction_output; spics_gpio_probe()
164 spics->chip.get = spics_get_value; spics_gpio_probe()
165 spics->chip.set = spics_set_value; spics_gpio_probe()
166 spics->chip.label = dev_name(&pdev->dev); spics_gpio_probe()
167 spics->chip.dev = &pdev->dev; spics_gpio_probe()
168 spics->chip.owner = THIS_MODULE; spics_gpio_probe()
169 spics->last_off = -1; spics_gpio_probe()
171 ret = gpiochip_add(&spics->chip); spics_gpio_probe()
177 dev_info(&pdev->dev, "spear spics registered\n"); spics_gpio_probe()
186 { .compatible = "st,spear-spics-gpio" },
194 .name = "spear-spics-gpio",

Completed in 94 milliseconds