Lines Matching refs:ds2404_gpio
30 struct ds2404_gpio {
36 struct ds2404_gpio *gpio;
40 static struct ds2404_gpio ds2404_gpio[] = {
51 ds2404_gpio[DS2404_RST].gpio = pdata->gpio_rst;
52 ds2404_gpio[DS2404_CLK].gpio = pdata->gpio_clk;
53 ds2404_gpio[DS2404_DQ].gpio = pdata->gpio_dq;
55 for (i = 0; i < ARRAY_SIZE(ds2404_gpio); i++) {
56 err = gpio_request(ds2404_gpio[i].gpio, ds2404_gpio[i].name);
59 ds2404_gpio[i].name, err);
63 gpio_direction_output(ds2404_gpio[i].gpio, 1);
66 chip->gpio = ds2404_gpio;
71 gpio_free(ds2404_gpio[i].gpio);
79 for (i = 0; i < ARRAY_SIZE(ds2404_gpio); i++)
80 gpio_free(ds2404_gpio[i].gpio);
85 gpio_set_value(ds2404_gpio[DS2404_RST].gpio, 0);
87 gpio_set_value(ds2404_gpio[DS2404_RST].gpio, 1);
88 gpio_set_value(ds2404_gpio[DS2404_CLK].gpio, 0);
89 gpio_direction_output(ds2404_gpio[DS2404_DQ].gpio, 0);
97 gpio_direction_output(ds2404_gpio[DS2404_DQ].gpio, 1);
99 gpio_set_value(ds2404_gpio[DS2404_DQ].gpio, byte & (1 << i));
101 gpio_set_value(ds2404_gpio[DS2404_CLK].gpio, 1);
103 gpio_set_value(ds2404_gpio[DS2404_CLK].gpio, 0);
113 gpio_direction_input(ds2404_gpio[DS2404_DQ].gpio);
116 gpio_set_value(ds2404_gpio[DS2404_CLK].gpio, 0);
118 if (gpio_get_value(ds2404_gpio[DS2404_DQ].gpio))
120 gpio_set_value(ds2404_gpio[DS2404_CLK].gpio, 1);
171 gpio_direction_input(ds2404_gpio[DS2404_DQ].gpio);
172 while (gpio_get_value(ds2404_gpio[DS2404_DQ].gpio))