Gx Chip Driver Direct
#define I2C_CON 0x00 #define I2C_TAR 0x04 #define I2C_DATA_CMD 0x10 #define I2C_ENABLE 0x6C static inline void gx_i2c_writel(struct gx_i2c *i2c, u32 val, u32 reg)
VPU_REG_DEC_CTRL (0xF100_0000) VPU_REG_STATUS (0xF100_0004) // bit 0 = busy VPU_REG_DATA (0xF100_0008) // firmware mailbox Driver requests gx_vpu_fw.bin from /lib/firmware . Missing firmware → VPU fails to start. gx chip driver
gx_disp: failed to set mode → EDID read failed. Force mode via kernel param: video=HDMI-A-1:1920x1080@60 . Force mode via kernel param: video=HDMI-A-1:1920x1080@60
gx_mem: allocation failed (size=4194304) → Increase CMA size in bootargs: cma=384M or adjust per-pool sizes in device tree. 7. Device Tree Bindings (Example for GX350) &gx_vpu compatible = "nationalchip,gx350-vpu"; reg = <0x0 0xf1000000 0x0 0x4000>; interrupts = <0 33 4>; clocks = <&clkc GX350_CLK_VPU>, <&clkc GX350_CLK_VPU_AXI>; clock-names = "core", "bus"; firmware-name = "gx_vpu_fw.bin"; memory-region = <&vpu_mem>; ; &gx_disp compatible = "nationalchip,gx350-disp"; reg = <0x0 0xf0000000 0x0 0x2000>; interrupts = <0 25 4>; ports disp_out: endpoint remote-endpoint = <&hdmi_in>; ; ; ; Device Tree Bindings (Example for GX350) &gx_vpu compatible
static irqreturn_t gx_disp_irq(int irq, void *dev_id)