Lines Matching refs:gpio

103 static u32 get_reserved(struct intel_gpio *gpio)
105 struct drm_psb_private *dev_priv = gpio->dev_priv;
109 reserved = GMBUS_REG_READ(gpio->reg) &
118 struct intel_gpio *gpio = data;
119 struct drm_psb_private *dev_priv = gpio->dev_priv;
120 u32 reserved = get_reserved(gpio);
121 GMBUS_REG_WRITE(gpio->reg, reserved | GPIO_CLOCK_DIR_MASK);
122 GMBUS_REG_WRITE(gpio->reg, reserved);
123 return (GMBUS_REG_READ(gpio->reg) & GPIO_CLOCK_VAL_IN) != 0;
128 struct intel_gpio *gpio = data;
129 struct drm_psb_private *dev_priv = gpio->dev_priv;
130 u32 reserved = get_reserved(gpio);
131 GMBUS_REG_WRITE(gpio->reg, reserved | GPIO_DATA_DIR_MASK);
132 GMBUS_REG_WRITE(gpio->reg, reserved);
133 return (GMBUS_REG_READ(gpio->reg) & GPIO_DATA_VAL_IN) != 0;
138 struct intel_gpio *gpio = data;
139 struct drm_psb_private *dev_priv = gpio->dev_priv;
140 u32 reserved = get_reserved(gpio);
149 GMBUS_REG_WRITE(gpio->reg, reserved | clock_bits);
150 GMBUS_REG_READ(gpio->reg); /* Posting */
155 struct intel_gpio *gpio = data;
156 struct drm_psb_private *dev_priv = gpio->dev_priv;
157 u32 reserved = get_reserved(gpio);
166 GMBUS_REG_WRITE(gpio->reg, reserved | data_bits);
167 GMBUS_REG_READ(gpio->reg);
183 struct intel_gpio *gpio;
188 gpio = kzalloc(sizeof(struct intel_gpio), GFP_KERNEL);
189 if (gpio == NULL)
192 gpio->reg = map_pin_to_reg[pin];
193 gpio->dev_priv = dev_priv;
195 snprintf(gpio->adapter.name, sizeof(gpio->adapter.name),
197 gpio->adapter.owner = THIS_MODULE;
198 gpio->adapter.algo_data = &gpio->algo;
199 gpio->adapter.dev.parent = dev_priv->dev.dev;
200 gpio->algo.setsda = set_data;
201 gpio->algo.setscl = set_clock;
202 gpio->algo.getsda = get_data;
203 gpio->algo.getscl = get_clock;
204 gpio->algo.udelay = I2C_RISEFALL_TIME;
205 gpio->algo.timeout = usecs_to_jiffies(2200);
206 gpio->algo.data = gpio;
208 if (i2c_bit_add_bus(&gpio->adapter))
211 return &gpio->adapter;
214 kfree(gpio);
224 struct intel_gpio *gpio = container_of(adapter,
232 set_data(gpio, 1);
233 set_clock(gpio, 1);
238 set_data(gpio, 1);
239 set_clock(gpio, 1);