ENUM ICVS_COMMAND(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME

okay so bestie, enum icvs_command is literally the protocol command opcodes β€” like, the whole menu of stuff you can ask the firmware to do, sitting up in firmware space 0x0800+ πŸ’… (this is the Kernel API Manual, section 9, btw πŸŽ€)


✨ SYNOPSIS ✨

       enum icvs_command {
           ICVS_GET_DEV_STATE ,
           ICVS_GET_DEV_FW_VERSION ,
           ICVS_GET_DEV_VID_PID ,
           ICVS_GET_DEV_ERR_CODE ,
           ICVS_GET_DEV_CAPABILITY ,
           ICVS_SET_DEV_HOST_ID ,
           ICVS_GET_DEV_HOST_ID ,
           ICVS_FW_LOADER_START ,
           ICVS_FW_LOADER_DATA ,
           ICVS_FW_LOADER_END ,
           ICVS_HOST_GET_MIPI_CONFIG ,
           ICVS_HOST_SET_MIPI_CONFIG ,
           ICVS_HOST_SENSOR_OWNER

       };

πŸ¦‹ Constants πŸ¦‹

okay so these are all the members, one by one, no skips, no cap πŸ‘‘

  • ICVS_GET_DEV_STATE β€” ask the device what state it's in rn, and you get it back as a state bitfield ✨
  • ICVS_GET_DEV_FW_VERSION β€” pull the firmware version tuple, like a little name-tag for the fw πŸ’–
  • ICVS_GET_DEV_VID_PID β€” read the vendor / product identifiers, the classic VID/PID combo πŸŽ€
  • ICVS_GET_DEV_ERR_CODE β€” grab the last error code, if there even is one (if any πŸ‘€) 😭
  • ICVS_GET_DEV_CAPABILITY β€” read the protocol capability structure, so you know what it can actually do 🫢
  • ICVS_SET_DEV_HOST_ID β€” set the host identity / ownership bits, like planting your flag 🌸
  • ICVS_GET_DEV_HOST_ID β€” read that host identity right back out, vibe check complete πŸ”₯
  • ICVS_FW_LOADER_START β€” kick off the firmware download sequence, here we gooo ⭐
  • ICVS_FW_LOADER_DATA β€” stream one chunk of firmware payload, chunk by chunky chunk 🧚
  • ICVS_FW_LOADER_END β€” end the firmware download and trigger the flash, the finale πŸ’€
  • ICVS_HOST_GET_MIPI_CONFIG β€” request the current MIPI CSI link configuration πŸ“Έ
  • ICVS_HOST_SET_MIPI_CONFIG β€” apply a brand-new MIPI CSI link configuration, slay πŸ’…
  • ICVS_HOST_SENSOR_OWNER β€” toggle CSI sensor ownership (with a lil GPIO assist) πŸ‘‘

🌈 SEE ALSO 🌈

the whole friend group, fr fr β€” go read these too:

  • Kernel file ./drivers/media/i2c/cvs/icvs.h
  • enum icvs_csi_cmd_id(9)
  • enum icvs_csi_link_owner(9)
  • enum icvs_csi_privacy_status(9)
  • enum icvs_csi_pads(9)
  • CVS device quirk flags(9)
  • struct icvs_device_quirk(9)
  • struct icvs_dt_config(9)
  • struct icvs_vc_config(9)
  • struct icvs_link_cfg(9)
  • struct icvs_fw_version(9)
  • struct icvs_vid_pid(9)
  • struct icvs_mipi_data_packet(9)
  • struct icvs_mipi_read_packet(9)
  • struct icvs_dev_capabilities(9)
  • struct icvs_cmd(9)
  • struct icvs_resp(9)
  • enum icvs_resources(9)
  • enum icvs_state(9)
  • struct icvs(9)
  • cvs_dev(9)

that's the whole page, bestie, you ate that 🫢 this lil drop lives in ./drivers/media/i2c/cvs and it's dated October 2026 β€” mwah, see you in the next man 9 πŸ’œπŸ¦‹

πŸ“¦ where this page comes from