pc_linux: enable pinctrl, evdev, i2c_hid

Issue #5036
This commit is contained in:
Christian Helmuth 2022-06-08 12:07:28 +02:00
parent 48865337b1
commit 4962340985
9 changed files with 170 additions and 66 deletions

View File

@ -34,6 +34,9 @@ SRC_C += lx_emul/shadow/mm/memblock.c
SRC_C += lx_emul/shadow/mm/page_alloc.c
SRC_C += lx_emul/shadow/mm/vmalloc.c
SRC_C += lx_emul/shadow/drivers/char/random.c
SRC_C += lx_emul/shadow/drivers/clk/clk.c
SRC_C += lx_emul/shadow/drivers/clk/clkdev.c
SRC_C += lx_emul/shadow/drivers/clk/clk-devres.c
SRC_C += lx_emul/shadow/drivers/pci/host-bridge.c
SRC_C += lx_emul/shadow/drivers/pci/pci.c
SRC_C += lx_emul/shadow/drivers/pci/pci-sysfs.c

View File

@ -376,6 +376,7 @@ include/linux/anon_inodes.h
include/linux/average.h
include/linux/backlight.h
include/linux/circ_buf.h
include/linux/clkdev.h
include/linux/dma-buf.h
include/linux/dma-fence-array.h
include/linux/dma-fence-chain.h

View File

@ -785,3 +785,38 @@ int software_node_notify(struct device * dev,unsigned long action)
lx_emul_trace(__func__);
return 0;
}
#include <linux/pinctrl/devinfo.h>
int pinctrl_bind_pins(struct device * dev)
{
lx_emul_trace(__func__);
return 0;
}
#include <linux/pinctrl/devinfo.h>
int pinctrl_init_done(struct device * dev)
{
lx_emul_trace(__func__);
return 0;
}
#include <linux/pinctrl/consumer.h>
struct pinctrl * devm_pinctrl_get(struct device * dev)
{
lx_emul_trace(__func__);
return (struct pinctrl*)ERR_PTR(-ENODEV);
}
#include <linux/pinctrl/consumer.h>
void devm_pinctrl_put(struct pinctrl * p)
{
lx_emul_trace(__func__);
}

View File

@ -612,70 +612,6 @@ void gpiod_set_value_cansleep(struct gpio_desc * desc,int value)
}
#include <linux/i2c.h>
s32 i2c_smbus_read_block_data(const struct i2c_client * client,u8 command,u8 * values)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/i2c.h>
s32 i2c_smbus_read_byte(const struct i2c_client * client)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/i2c.h>
s32 i2c_smbus_read_byte_data(const struct i2c_client * client,u8 command)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/i2c.h>
s32 i2c_smbus_read_word_data(const struct i2c_client * client,u8 command)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/i2c.h>
s32 i2c_smbus_write_block_data(const struct i2c_client * client,u8 command,u8 length,const u8 * values)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/i2c.h>
s32 i2c_smbus_write_byte(const struct i2c_client * client,u8 value)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/i2c.h>
s32 i2c_smbus_write_byte_data(const struct i2c_client * client,u8 command,u8 value)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/i2c.h>
s32 i2c_smbus_write_word_data(const struct i2c_client * client,u8 command,u16 value)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/i2c.h>
s32 i2c_smbus_xfer(struct i2c_adapter * adapter,u16 addr,unsigned short flags,char read_write,u8 command,int protocol,union i2c_smbus_data * data)
@ -1841,6 +1777,38 @@ int pci_write_config_byte(const struct pci_dev * dev,int where,u8 val)
}
#include <linux/pinctrl/consumer.h>
struct pinctrl_state * pinctrl_lookup_state(struct pinctrl * p,const char * name)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/pinctrl/machine.h>
int pinctrl_register_mappings(const struct pinctrl_map * maps,unsigned num_maps)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/pinctrl/consumer.h>
int pinctrl_select_state(struct pinctrl * p,struct pinctrl_state * state)
{
lx_emul_trace_and_stop(__func__);
}
#include <linux/pinctrl/machine.h>
void pinctrl_unregister_mappings(const struct pinctrl_map * map)
{
lx_emul_trace_and_stop(__func__);
}
extern void ppgtt_bind_vma(struct i915_address_space * vm,struct i915_vm_pt_stash * stash,struct i915_vma_resource * vma_res,enum i915_cache_level cache_level,u32 flags);
void ppgtt_bind_vma(struct i915_address_space * vm,struct i915_vm_pt_stash * stash,struct i915_vma_resource * vma_res,enum i915_cache_level cache_level,u32 flags)
{

View File

@ -406,3 +406,27 @@ struct gpio_desc * devm_gpiod_get_optional(struct device * dev, const char * con
lx_emul_trace(__func__);
return NULL;
}
#include <linux/clk.h>
struct clk *devm_clk_get_optional_enabled(struct device *dev, const char *id)
{
return NULL;
}
#include <linux/pinctrl/devinfo.h>
int pinctrl_bind_pins(struct device * dev)
{
lx_emul_trace(__func__);
return 0;
}
#include <linux/pinctrl/devinfo.h>
int pinctrl_init_done(struct device * dev)
{
lx_emul_trace(__func__);
return 0;
}

View File

@ -243,6 +243,18 @@ int __register_chrdev(unsigned int major,unsigned int baseminor,unsigned int cou
}
#include <linux/acpi.h>
#include <acpi/acpixf.h>
acpi_status acpi_evaluate_object(acpi_handle handle, acpi_string pathname,
struct acpi_object_list *external_params,
struct acpi_buffer *return_buffer)
{
lx_emul_trace(__func__);
return (AE_NOT_FOUND);
}
#include <linux/property.h>
int software_node_notify(struct device * dev,unsigned long action)
@ -250,3 +262,22 @@ int software_node_notify(struct device * dev,unsigned long action)
lx_emul_trace(__func__);
return 0;
}
#include <linux/pinctrl/devinfo.h>
int pinctrl_bind_pins(struct device * dev)
{
lx_emul_trace(__func__);
return 0;
}
#include <linux/pinctrl/devinfo.h>
int pinctrl_init_done(struct device * dev)
{
lx_emul_trace(__func__);
return 0;
}

View File

@ -1,7 +1,7 @@
/*
* \brief Array defining order of Linux Kernel initcalls
* \author Automatically generated file - do no edit
* \date 2023-10-06
* \date 2023-11-02
*/
#pragma once
@ -35,6 +35,7 @@ static const char * lx_emul_initcall_order[] = {
"__initcall_init_jiffies_clocksource1",
"__initcall_init_script_binfmt1",
"__initcall_init_elf_binfmt1",
"__initcall_pinctrl_init1",
"__initcall_gpiolib_dev_init1",
"__initcall_iommu_init1",
"__initcall_cpuidle_init1",
@ -111,6 +112,7 @@ static const char * lx_emul_initcall_order[] = {
"__initcall_usb_init4",
"__initcall_serio_init4",
"__initcall_input_init4",
"__initcall_dw_i2c_init_driver4",
"__initcall_power_supply_class_init4",
"__initcall_leds_init4",
"__initcall_efisubsys_init4",
@ -206,6 +208,7 @@ static const char * lx_emul_initcall_order[] = {
"__initcall_x509_key_init6",
"__initcall_blake2s_mod_init6",
"__initcall_percpu_counter_startup6",
"__initcall_tgl_pinctrl_driver_init6",
"__initcall_pci_proc_init6",
"__initcall_ged_driver_init6",
"__initcall_acpi_ac_init6",
@ -215,6 +218,7 @@ static const char * lx_emul_initcall_order[] = {
"__initcall_acpi_processor_driver_init6",
"__initcall_acpi_thermal_init6",
"__initcall_acpi_battery_init6",
"__initcall_gpio_clk_driver_init6",
"__initcall_n_null_init6",
"__initcall_pty_init6",
"__initcall_serial8250_init6",
@ -230,6 +234,8 @@ static const char * lx_emul_initcall_order[] = {
"__initcall_i915_init6",
"__initcall_topology_sysfs_init6",
"__initcall_cacheinfo_sysfs_init6",
"__initcall_intel_lpss_init6",
"__initcall_intel_lpss_pci_driver_init6",
"__initcall_blackhole_netdev_init6",
"__initcall_phylink_init6",
"__initcall_phy_module_init6",
@ -266,12 +272,17 @@ static const char * lx_emul_initcall_order[] = {
"__initcall_i8042_init6",
"__initcall_serport_init6",
"__initcall_input_leds_init6",
"__initcall_evdev_init6",
"__initcall_atkbd_init6",
"__initcall_psmouse_init6",
"__initcall_pkg_temp_thermal_init6",
"__initcall_thermal_throttle_init_device6",
"__initcall_ledtrig_audio_init6",
"__initcall_esrt_sysfs_init6",
"__initcall_hid_init6",
"__initcall_hid_generic_init6",
"__initcall_mt_driver_init6",
"__initcall_i2c_hid_acpi_driver_init6",
"__initcall_wmi_bmof_driver_init6",
"__initcall_snd_ctl_led_init6",
"__initcall_alsa_timer_init6",
@ -326,6 +337,7 @@ static const char * lx_emul_initcall_order[] = {
"__initcall_regulatory_init_db7",
"__initcall_pci_mmcfg_late_insert_resources7",
"__initcall_acpi_gpio_handle_deferred_request_irqs7s",
"__initcall_clk_disable_unused7s",
"__initcall_alsa_sound_last_init7s",
"__initcall_con_initcon",
"__initcall_end",

View File

@ -642,3 +642,21 @@ void iwl_mvm_leds_sync(struct iwl_mvm * mvm)
{
lx_emul_trace(__func__);
}
#include <linux/pinctrl/devinfo.h>
int pinctrl_bind_pins(struct device * dev)
{
lx_emul_trace(__func__);
return 0;
}
#include <linux/pinctrl/devinfo.h>
int pinctrl_init_done(struct device * dev)
{
lx_emul_trace(__func__);
return 0;
}

View File

@ -55,6 +55,18 @@ LX_ENABLE += USB_PCI USB_UHCI_HCD
# Intel framebuffer
LX_ENABLE += DRM DRM_I915
# required for GPIO irqchip on tigerlake
LX_ENABLE += PINCTRL PINCTRL_TIGERLAKE
# I2C HID touchpad support (keep INPUT_EVDEV hook)
LX_ENABLE += INPUT_EVDEV HID_GENERIC HID_MULTITOUCH
LX_ENABLE += MFD_INTEL_LPSS_PCI
LX_ENABLE += I2C_DESIGNWARE_PLATFORM
LX_ENABLE += I2C I2C_HID_ACPI
# no AML code is run that uses this feature
LX_DISABLE += ACPI_I2C_OPREGION
# to automatically set up screen mode at boot time
LX_ENABLE += FB
@ -109,4 +121,4 @@ LX_DISABLE += SCHED_MC CPU_FREQ
LX_DISABLE += CC_HAS_ASM_GOTO
# slim down kernel by removing superfluous drivers
LX_DISABLE += HID HID_GENERIC USB_HID VGA_CONSOLE DUMMY_CONSOLE NLS VGA_ARB DEBUG_LIST
LX_DISABLE += USB_HID VGA_CONSOLE DUMMY_CONSOLE NLS VGA_ARB DEBUG_LIST