RK3399 + Kylin Industrial Tablet Solution
#RK3399
A few key properties are worth understanding:
compatible = "gs_mxc6655xa"— this string must match the.compatibleentry in the kernel driver'sof_match_table. If this string is wrong or the driver module is not loaded, the device will not bind.reg = <0x15>— the I²C slave address. Confirm withi2cdetect -y 5at runtime; you should see a device acknowledged at address0x15.irq-gpio = <&gpio3 RK_PC1 IRQ_TYPE_LEVEL_LOW>— the interrupt line is GPIO3_C1, configured as active-low. This matches the MXC6655xa's INT pin behavior when a motion threshold is exceeded.irq_enable = <1>— enables interrupt-driven reporting rather than pure polling.poll_delay_ms = <30>— when polling is active (or as a fallback), the driver samples the sensor every 30 ms (~33 Hz), which is a reasonable rate for UI rotation and industrial tilt sensing.type = <SENSOR_TYPE_ACCEL>— maps the device into the Rockchip sensor subsystem as an accelerometer type, making it visible through the standard input event or IIO interface.power-off-in-suspend = <1>— instructs the driver to cut power to the sensor during system suspend, reducing standby current.layout = <1>— specifies the physical mounting orientation of the chip relative to the board's reference frame. Changing this value remaps the X/Y/Z axes to compensate for rotated or inverted placement.
Pinctrl Configuration
The pinctrl-0 property references mxc6655xa_irq_gpio, which must be defined in the &pinctrl section of the DTS. This block configures the GPIO3_C1 pad as an input with the correct pull and drive settings so the interrupt line is reliably received by the SoC. Without this pinctrl entry, the kernel will fail to request the GPIO and the driver probe will return an error.