Lines Matching defs:arb
44 const struct i2c_arbitrator_data *arb = i2c_mux_priv(muxc);
48 stop_time = jiffies + usecs_to_jiffies(arb->wait_free_us) + 1;
51 gpiod_set_value(arb->our_gpio, 1);
52 udelay(arb->slew_delay_us);
55 stop_retry = jiffies + usecs_to_jiffies(arb->wait_retry_us) + 1;
57 int gpio_val = gpiod_get_value(arb->their_gpio);
68 gpiod_set_value(arb->our_gpio, 0);
70 usleep_range(arb->wait_retry_us, arb->wait_retry_us * 2);
74 gpiod_set_value(arb->our_gpio, 0);
75 udelay(arb->slew_delay_us);
87 const struct i2c_arbitrator_data *arb = i2c_mux_priv(muxc);
90 gpiod_set_value(arb->our_gpio, 0);
91 udelay(arb->slew_delay_us);
102 struct i2c_arbitrator_data *arb;
116 muxc = i2c_mux_alloc(NULL, dev, 1, sizeof(*arb), I2C_MUX_ARBITRATOR,
120 arb = i2c_mux_priv(muxc);
125 arb->our_gpio = devm_gpiod_get(dev, "our-claim", GPIOD_OUT_LOW);
126 if (IS_ERR(arb->our_gpio)) {
128 PTR_ERR(arb->our_gpio));
129 return PTR_ERR(arb->our_gpio);
132 arb->their_gpio = devm_gpiod_get(dev, "their-claim", GPIOD_IN);
133 if (IS_ERR(arb->their_gpio)) {
135 PTR_ERR(arb->their_gpio));
136 return PTR_ERR(arb->their_gpio);
149 if (of_property_read_u32(np, "slew-delay-us", &arb->slew_delay_us))
150 arb->slew_delay_us = 10;
151 if (of_property_read_u32(np, "wait-retry-us", &arb->wait_retry_us))
152 arb->wait_retry_us = 3000;
153 if (of_property_read_u32(np, "wait-free-us", &arb->wait_free_us))
154 arb->wait_free_us = 50000;
186 { .compatible = "i2c-arb-gpio-challenge", },
195 .name = "i2c-arb-gpio-challenge",
205 MODULE_ALIAS("platform:i2c-arb-gpio-challenge");