*参照元 [#c013245b]
#backlinks

*説明 [#g67d82d1]
-パス: [[linux-4.4.1/]]

-FIXME: これは何?
--説明


**引数 [#j2a057b6]
-
--

**返り値 [#ped9218c]
-
--

**参考 [#j1438ad0]


*実装 [#td44fcff]
 static const struct regmap_bus *regmap_get_i2c_bus(struct i2c_client *i2c,
 					const struct regmap_config *config)
 struct regmap *__devm_regmap_init(struct device *dev,
 				  const struct regmap_bus *bus,
 				  void *bus_context,
 				  const struct regmap_config *config,
 				  struct lock_class_key *lock_key,
 				  const char *lock_name)
 {
 	if (i2c_check_functionality(i2c->adapter, I2C_FUNC_I2C))
 		return &regmap_i2c;
 	else if (config->reg_bits == 8 &&
 		 i2c_check_functionality(i2c->adapter,
 					 I2C_FUNC_SMBUS_I2C_BLOCK))
 		return &regmap_i2c_smbus_i2c_block;
 	else if (config->val_bits == 16 && config->reg_bits == 8 &&
 		 i2c_check_functionality(i2c->adapter,
 					 I2C_FUNC_SMBUS_WORD_DATA))
 		switch (regmap_get_val_endian(&i2c->dev, NULL, config)) {
 		case REGMAP_ENDIAN_LITTLE:
 			return &regmap_smbus_word;
 		case REGMAP_ENDIAN_BIG:
 			return &regmap_smbus_word_swapped;
 		default:		/* everything else is not supported */
 			break;
 		}
 	else if (config->val_bits == 8 && config->reg_bits == 8 &&
 		 i2c_check_functionality(i2c->adapter,
 					 I2C_FUNC_SMBUS_BYTE_DATA))
 		return &regmap_smbus_byte;
 	struct regmap **ptr, *regmap;
 
 	return ERR_PTR(-ENOTSUPP);
 	ptr = devres_alloc(devm_regmap_release, sizeof(*ptr), GFP_KERNEL);
 	if (!ptr)
 		return ERR_PTR(-ENOMEM);
 
 	regmap = __regmap_init(dev, bus, bus_context, config,
 			       lock_key, lock_name);
 	if (!IS_ERR(regmap)) {
 		*ptr = regmap;
 		devres_add(dev, ptr);
 	} else {
 		devres_free(ptr);
 	}
 
 	return regmap;
 }
 EXPORT_SYMBOL_GPL(__devm_regmap_init);


*コメント [#qe05e009]



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS