1*15f05610SDirk Eibach /*
2*15f05610SDirk Eibach * (C) Copyright 2016
3*15f05610SDirk Eibach * Mario Six, Guntermann & Drunck GmbH, mario.six@gdsys.cc
4*15f05610SDirk Eibach *
5*15f05610SDirk Eibach * SPDX-License-Identifier: GPL-2.0+
6*15f05610SDirk Eibach */
7*15f05610SDirk Eibach
8*15f05610SDirk Eibach #include <common.h>
9*15f05610SDirk Eibach #include <i2c.h>
10*15f05610SDirk Eibach #include <fdt_support.h>
11*15f05610SDirk Eibach #include <asm-generic/gpio.h>
12*15f05610SDirk Eibach #include <dm.h>
13*15f05610SDirk Eibach
fdt_disable_by_ofname(void * rw_fdt_blob,char * ofname)14*15f05610SDirk Eibach int fdt_disable_by_ofname(void *rw_fdt_blob, char *ofname)
15*15f05610SDirk Eibach {
16*15f05610SDirk Eibach int offset = fdt_path_offset(rw_fdt_blob, ofname);
17*15f05610SDirk Eibach
18*15f05610SDirk Eibach return fdt_status_disabled(rw_fdt_blob, offset);
19*15f05610SDirk Eibach }
20*15f05610SDirk Eibach
dm_i2c_simple_probe(struct udevice * bus,uint chip_addr)21*15f05610SDirk Eibach bool dm_i2c_simple_probe(struct udevice *bus, uint chip_addr)
22*15f05610SDirk Eibach {
23*15f05610SDirk Eibach struct udevice *dev;
24*15f05610SDirk Eibach
25*15f05610SDirk Eibach return !dm_i2c_probe(bus, chip_addr, DM_I2C_CHIP_RD_ADDRESS |
26*15f05610SDirk Eibach DM_I2C_CHIP_WR_ADDRESS, &dev);
27*15f05610SDirk Eibach }
28*15f05610SDirk Eibach
request_gpio_by_name(struct gpio_desc * gpio,const char * gpio_dev_name,uint offset,char * gpio_name)29*15f05610SDirk Eibach int request_gpio_by_name(struct gpio_desc *gpio, const char *gpio_dev_name,
30*15f05610SDirk Eibach uint offset, char *gpio_name)
31*15f05610SDirk Eibach {
32*15f05610SDirk Eibach struct udevice *gpio_dev = NULL;
33*15f05610SDirk Eibach
34*15f05610SDirk Eibach if (uclass_get_device_by_name(UCLASS_GPIO, gpio_dev_name, &gpio_dev))
35*15f05610SDirk Eibach return 1;
36*15f05610SDirk Eibach
37*15f05610SDirk Eibach gpio->dev = gpio_dev;
38*15f05610SDirk Eibach gpio->offset = offset;
39*15f05610SDirk Eibach gpio->flags = 0;
40*15f05610SDirk Eibach
41*15f05610SDirk Eibach return dm_gpio_request(gpio, gpio_name);
42*15f05610SDirk Eibach }
43*15f05610SDirk Eibach
44