@ -26,6 +26,7 @@
# include <asm/io.h>
# include <asm-generic/gpio.h>
# include <dm/device-internal.h>
# include <dm/of_extra.h>
# include <dm/uclass-internal.h>
# ifdef DEBUG_TRACE
@ -996,15 +997,12 @@ int cros_ec_get_ldo(struct udevice *dev, uint8_t index, uint8_t *state)
int cros_ec_register ( struct udevice * dev )
{
struct cros_ec_dev * cdev = dev_get_uclass_priv ( dev ) ;
const void * blob = gd - > fdt_blob ;
int node = dev_of_offset ( dev ) ;
char id [ MSG_BYTES ] ;
cdev - > dev = dev ;
gpio_request_by_name ( dev , " ec-interrupt " , 0 , & cdev - > ec_int ,
GPIOD_IS_IN ) ;
cdev - > optimise_flash_write = fdtdec_get_bool ( blob , node ,
" optimise-flash-write " ) ;
cdev - > optimise_flash_write = dev_read_bool ( dev , " optimise-flash-write " ) ;
if ( cros_ec_check_version ( cdev ) ) {
debug ( " %s: Could not detect CROS-EC version \n " , __func__ ) ;
@ -1023,28 +1021,26 @@ int cros_ec_register(struct udevice *dev)
return 0 ;
}
int cros_ec_decode_ec_flash ( const void * blob , int node ,
struct fdt_cros_ec * config )
int cros_ec_decode_ec_flash ( struct udevice * dev , struct fdt_cros_ec * config )
{
int flash_ node;
ofnode flash_node , node ;
flash_node = fdt_subnode_offset ( blob , node , " flash " ) ;
if ( flash_node < 0 ) {
flash_node = dev_read_subnode ( dev , " flash " ) ;
if ( ! ofnode_valid ( flash_node ) ) {
debug ( " Failed to find flash node \n " ) ;
return - 1 ;
}
if ( fdtdec_read_fmap_entry ( blob , flash_node , " flash " ,
& config - > flash ) ) {
debug ( " Failed to decode flash node in chrome-ec' \n " ) ;
if ( of_read_fmap_entry ( flash_node , " flash " , & config - > flash ) ) {
debug ( " Failed to decode flash node in chrome-ec \n " ) ;
return - 1 ;
}
config - > flash_erase_value = fdtdec_get_int ( blob , flash_node ,
" erase-value " , - 1 ) ;
for ( node = fdt _first_subnode( blob , flash_node ) ; node > = 0 ;
node = fdt_next_subnode ( blob , node ) ) {
const char * name = fdt _get_name( blob , node , NULL ) ;
config - > flash_erase_value = ofnode_read_s32_default ( flash_node ,
" erase-value " , - 1 ) ;
for ( node = ofnode _first_subnode( flash_node ) ; ofnode_valid ( node ) ;
node = ofnode_next_subnode ( node ) ) {
const char * name = ofnode _get_name( node ) ;
enum ec_flash_region region ;
if ( 0 = = strcmp ( name , " ro " ) ) {
@ -1058,8 +1054,7 @@ int cros_ec_decode_ec_flash(const void *blob, int node,
return - 1 ;
}
if ( fdtdec_read_fmap_entry ( blob , node , " reg " ,
& config - > region [ region ] ) ) {
if ( of_read_fmap_entry ( node , " reg " , & config - > region [ region ] ) ) {
debug ( " Failed to decode flash region in chrome-ec' \n " ) ;
return - 1 ;
}