11368d06dSDuje Mihanović /* SPDX-License-Identifier: GPL-2.0-only */ 21368d06dSDuje Mihanović /* 31368d06dSDuje Mihanović * Shared library for Kinetic's ExpressWire protocol. 41368d06dSDuje Mihanović * This protocol works by pulsing the ExpressWire IC's control GPIO. 51368d06dSDuje Mihanović * ktd2692 and ktd2801 are known to use this protocol. 61368d06dSDuje Mihanović */ 71368d06dSDuje Mihanović 81368d06dSDuje Mihanović #ifndef _LEDS_EXPRESSWIRE_H 91368d06dSDuje Mihanović #define _LEDS_EXPRESSWIRE_H 101368d06dSDuje Mihanović 11*7774f3d1SAndy Shevchenko #include <linux/types.h> 12*7774f3d1SAndy Shevchenko 13*7774f3d1SAndy Shevchenko struct gpio_desc; 141368d06dSDuje Mihanović 151368d06dSDuje Mihanović struct expresswire_timing { 161368d06dSDuje Mihanović unsigned long poweroff_us; 171368d06dSDuje Mihanović unsigned long detect_delay_us; 181368d06dSDuje Mihanović unsigned long detect_us; 191368d06dSDuje Mihanović unsigned long data_start_us; 201368d06dSDuje Mihanović unsigned long end_of_data_low_us; 211368d06dSDuje Mihanović unsigned long end_of_data_high_us; 221368d06dSDuje Mihanović unsigned long short_bitset_us; 231368d06dSDuje Mihanović unsigned long long_bitset_us; 241368d06dSDuje Mihanović }; 251368d06dSDuje Mihanović 261368d06dSDuje Mihanović struct expresswire_common_props { 271368d06dSDuje Mihanović struct gpio_desc *ctrl_gpio; 281368d06dSDuje Mihanović struct expresswire_timing timing; 291368d06dSDuje Mihanović }; 301368d06dSDuje Mihanović 311368d06dSDuje Mihanović void expresswire_power_off(struct expresswire_common_props *props); 321368d06dSDuje Mihanović void expresswire_enable(struct expresswire_common_props *props); 331368d06dSDuje Mihanović void expresswire_start(struct expresswire_common_props *props); 341368d06dSDuje Mihanović void expresswire_end(struct expresswire_common_props *props); 351368d06dSDuje Mihanović void expresswire_set_bit(struct expresswire_common_props *props, bool bit); 361368d06dSDuje Mihanović void expresswire_write_u8(struct expresswire_common_props *props, u8 val); 371368d06dSDuje Mihanović 381368d06dSDuje Mihanović #endif /* _LEDS_EXPRESSWIRE_H */ 39