162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Siemens SX1 board definitions
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright: Vovan888 at gmail com
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef __ASM_ARCH_SX1_I2C_CHIPS_H
962306a36Sopenharmony_ci#define __ASM_ARCH_SX1_I2C_CHIPS_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#define SOFIA_MAX_LIGHT_VAL	0x2B
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#define SOFIA_I2C_ADDR		0x32
1462306a36Sopenharmony_ci/* Sofia reg 3 bits masks */
1562306a36Sopenharmony_ci#define SOFIA_POWER1_REG	0x03
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#define	SOFIA_USB_POWER		0x01
1862306a36Sopenharmony_ci#define	SOFIA_MMC_POWER		0x04
1962306a36Sopenharmony_ci#define	SOFIA_BLUETOOTH_POWER	0x08
2062306a36Sopenharmony_ci#define	SOFIA_MMILIGHT_POWER	0x20
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci#define SOFIA_POWER2_REG	0x04
2362306a36Sopenharmony_ci#define SOFIA_BACKLIGHT_REG	0x06
2462306a36Sopenharmony_ci#define SOFIA_KEYLIGHT_REG	0x07
2562306a36Sopenharmony_ci#define SOFIA_DIMMING_REG	0x09
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci/* Function Prototypes for SX1 devices control on I2C bus */
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciint sx1_setbacklight(u8 backlight);
3162306a36Sopenharmony_ciint sx1_getbacklight(u8 *backlight);
3262306a36Sopenharmony_ciint sx1_setkeylight(u8 keylight);
3362306a36Sopenharmony_ciint sx1_getkeylight(u8 *keylight);
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciint sx1_setmmipower(u8 onoff);
3662306a36Sopenharmony_ciint sx1_setusbpower(u8 onoff);
3762306a36Sopenharmony_ciint sx1_i2c_read_byte(u8 devaddr, u8 regoffset, u8 *value);
3862306a36Sopenharmony_ciint sx1_i2c_write_byte(u8 devaddr, u8 regoffset, u8 value);
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci/* MMC prototypes */
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciextern void sx1_mmc_init(void);
4362306a36Sopenharmony_ciextern void sx1_mmc_slot_cover_handler(void *arg, int state);
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci#endif /* __ASM_ARCH_SX1_I2C_CHIPS_H */
46