Lines Matching refs:chip

103 	struct xway_stp *chip =  in xway_stp_set()  local
107 chip->shadow |= BIT(gpio); in xway_stp_set()
109 chip->shadow &= ~BIT(gpio); in xway_stp_set()
110 xway_stp_w32(chip->virt, chip->shadow, XWAY_STP_CPU0); in xway_stp_set()
111 xway_stp_w32_mask(chip->virt, 0, XWAY_STP_CON_SWU, XWAY_STP_CON0); in xway_stp_set()
138 struct xway_stp *chip = in xway_stp_request() local
141 if ((gpio < 8) && (chip->reserved & BIT(gpio))) { in xway_stp_request()
153 static int xway_stp_hw_init(struct xway_stp *chip) in xway_stp_hw_init() argument
156 xway_stp_w32(chip->virt, 0, XWAY_STP_AR); in xway_stp_hw_init()
157 xway_stp_w32(chip->virt, 0, XWAY_STP_CPU0); in xway_stp_hw_init()
158 xway_stp_w32(chip->virt, 0, XWAY_STP_CPU1); in xway_stp_hw_init()
159 xway_stp_w32(chip->virt, XWAY_STP_CON_SWU, XWAY_STP_CON0); in xway_stp_hw_init()
160 xway_stp_w32(chip->virt, 0, XWAY_STP_CON1); in xway_stp_hw_init()
163 xway_stp_w32_mask(chip->virt, XWAY_STP_EDGE_MASK, in xway_stp_hw_init()
164 chip->edge, XWAY_STP_CON0); in xway_stp_hw_init()
167 xway_stp_w32_mask(chip->virt, XWAY_STP_GROUP_MASK, in xway_stp_hw_init()
168 chip->groups, XWAY_STP_CON1); in xway_stp_hw_init()
171 xway_stp_w32_mask(chip->virt, in xway_stp_hw_init()
173 chip->dsl << XWAY_STP_ADSL_SHIFT, in xway_stp_hw_init()
177 xway_stp_w32_mask(chip->virt, in xway_stp_hw_init()
179 chip->phy1 << XWAY_STP_PHY1_SHIFT, in xway_stp_hw_init()
181 xway_stp_w32_mask(chip->virt, in xway_stp_hw_init()
183 chip->phy2 << XWAY_STP_PHY2_SHIFT, in xway_stp_hw_init()
187 chip->reserved = (chip->phy2 << 5) | (chip->phy1 << 2) | chip->dsl; in xway_stp_hw_init()
193 if (chip->reserved) in xway_stp_hw_init()
194 xway_stp_w32_mask(chip->virt, XWAY_STP_UPD_MASK, in xway_stp_hw_init()
204 struct xway_stp *chip; in xway_stp_probe() local
208 chip = devm_kzalloc(&pdev->dev, sizeof(*chip), GFP_KERNEL); in xway_stp_probe()
209 if (!chip) in xway_stp_probe()
213 chip->virt = devm_ioremap_resource(&pdev->dev, res); in xway_stp_probe()
214 if (IS_ERR(chip->virt)) in xway_stp_probe()
215 return PTR_ERR(chip->virt); in xway_stp_probe()
217 chip->gc.dev = &pdev->dev; in xway_stp_probe()
218 chip->gc.label = "stp-xway"; in xway_stp_probe()
219 chip->gc.direction_output = xway_stp_dir_out; in xway_stp_probe()
220 chip->gc.set = xway_stp_set; in xway_stp_probe()
221 chip->gc.request = xway_stp_request; in xway_stp_probe()
222 chip->gc.base = -1; in xway_stp_probe()
223 chip->gc.owner = THIS_MODULE; in xway_stp_probe()
228 chip->shadow = be32_to_cpu(*shadow); in xway_stp_probe()
233 chip->groups = be32_to_cpu(*groups) & XWAY_STP_GROUP_MASK; in xway_stp_probe()
235 chip->groups = XWAY_STP_GROUP0; in xway_stp_probe()
236 chip->gc.ngpio = fls(chip->groups) * 8; in xway_stp_probe()
241 chip->dsl = be32_to_cpu(*dsl) & XWAY_STP_ADSL_MASK; in xway_stp_probe()
249 chip->phy1 = be32_to_cpu(*phy) & XWAY_STP_PHY_MASK; in xway_stp_probe()
252 chip->phy2 = be32_to_cpu(*phy) & XWAY_STP_PHY_MASK; in xway_stp_probe()
257 chip->edge = XWAY_STP_FALLING; in xway_stp_probe()
266 ret = xway_stp_hw_init(chip); in xway_stp_probe()
268 ret = gpiochip_add(&chip->gc); in xway_stp_probe()