1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright 2018-2020 NXP. 4 * 5 */ 6 7#include <common.h> 8#include <command.h> 9#include <i2c.h> 10#include <asm/global_data.h> 11#include <asm/io.h> 12 13#include "emc2305.h" 14 15DECLARE_GLOBAL_DATA_PTR; 16 17void set_fan_speed(u8 data, int chip_addr) 18{ 19 u8 index; 20 u8 Fan[NUM_OF_FANS] = {I2C_EMC2305_FAN1, 21 I2C_EMC2305_FAN2, 22 I2C_EMC2305_FAN3, 23 I2C_EMC2305_FAN4, 24 I2C_EMC2305_FAN5}; 25 26 for (index = 0; index < NUM_OF_FANS; index++) { 27#if !CONFIG_IS_ENABLED(DM_I2C) 28 if (i2c_write(chip_addr, Fan[index], 1, &data, 1) != 0) { 29 printf("Error: failed to change fan speed @%x\n", 30 Fan[index]); 31 } 32#else 33 struct udevice *dev; 34 35 if (i2c_get_chip_for_busnum(0, chip_addr, 1, &dev)) 36 continue; 37 38 if (dm_i2c_write(dev, Fan[index], &data, 1) != 0) { 39 printf("Error: failed to change fan speed @%x\n", 40 Fan[index]); 41 } 42#endif 43 } 44} 45 46void emc2305_init(int chip_addr) 47{ 48 u8 data; 49 50 data = I2C_EMC2305_CMD; 51#if !CONFIG_IS_ENABLED(DM_I2C) 52 if (i2c_write(chip_addr, I2C_EMC2305_CONF, 1, &data, 1) != 0) 53 printf("Error: failed to configure EMC2305\n"); 54#else 55 struct udevice *dev; 56 57 if (!i2c_get_chip_for_busnum(0, chip_addr, 1, &dev)) 58 if (dm_i2c_write(dev, I2C_EMC2305_CONF, &data, 1)) 59 printf("Error: failed to configure EMC2305\n"); 60#endif 61 62} 63