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