STRUCT ISP_PARALLEL_CFG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct isp_parallel_cfg(9) β€” the Kernel API Manual glow-up ✨

okay bestie, so this is struct isp_parallel_cfg(9) from the Kernel API Manual, and it's literally the personality sheet for a parallel interface configuration πŸŽ€ like, all the little polarity bits and lane-shift vibes a parallel camera interface needs to know about itself. it's giving "tiny struct, huge main character energy" fr fr πŸ’–


✨ NAME ✨

struct isp_parallel_cfg β€” Parallel interface configuration πŸ¦‹

like, that's the whole name. that's what it does. we love a clear icon πŸ‘‘


🌸 SYNOPSIS 🌸

here's the struct in all its glory, copy-pasted exactly because I would never mess with your code, bestie:

struct isp_parallel_cfg {
    unsigned int data_lane_shift:3;
    unsigned int clk_pol:1;
    unsigned int hs_pol:1;
    unsigned int vs_pol:1;
    unsigned int fld_pol:1;
    unsigned int data_pol:1;
    unsigned int bt656:1;
 };

look at those bitfields. not a single wasted bit. the way that data_lane_shift gets 3 whole bits and everybody else gets exactly 1... it's giving "we know what we need" πŸ’…


🧚 Members 🧚

okay so here's the breakdown of every single member, and no I did not skip any of them, I would never πŸ™ˆ

  • data_lane_shift β€” the data lane shifter, and there are exactly four settings, no cap:
    • 0 β€” CAMEXT[13:0] -> CAM[13:0]
    • 2 β€” CAMEXT[13:2] -> CAM[11:0]
    • 4 β€” CAMEXT[13:4] -> CAM[9:0]
    • 6 β€” CAMEXT[13:6] -> CAM[7:0]

pick your shifter era, bestie ⭐

  • clk_pol β€” pixel clock polarity. 0 means sample on the rising edge, 1 means sample on the falling edge. clock vibes, choose wisely πŸ•
  • hs_pol β€” horizontal synchronization polarity. 0 is active high, 1 is active low. horizontal queen behavior πŸ’œ
  • vs_pol β€” vertical synchronization polarity. 0 is active high, 1 is active low. the vertical sister of the one above, slay 🌈
  • fld_pol β€” field signal polarity. 0 is positive, 1 is negative. it's giving polarity 🌸
  • data_pol β€” data polarity. 0 is normal, 1 is one's complement. flipping bits is a lifestyle 🫢
  • bt656 β€” this one means the data contains BT.656 embedded synchronization. iconic standard, no notes πŸ”₯

πŸ‘‘ SEE ALSO πŸ‘‘

go read these next, bestie, they're in the kernel file ./drivers/media/platform/ti/omap3isp/omap3isp.h β€” yes that exact path, I would never paraphrase a path 😭

  • struct isp_csiphy_lane(9)
  • struct isp_csiphy_lanes_cfg(9)
  • struct isp_ccp2_cfg(9)
  • struct isp_csi2_cfg(9)

read them in that order or don't, I'm not your mom, but they're all in ./drivers/media/platform/ti/omap3isp/omap3isp.h and they're all friends πŸ’–

friendly heads up: those references are exactly what the page lists, so if you need the deep lore, that's where you go. no extra tips from me, I'm not out here inventing documentation πŸ’€

πŸŽ€ sign-off πŸŽ€

and that's the page, bestie!! this came from ./drivers/media/platform/ti/om... (the source path gets a lil truncated in the footer, that's just how it's printed, don't @ me) and it's dated October 2026, filed under struct isp_parallel_cfg(9) πŸ¦‹βœ¨

now go configure that parallel interface like the main character you are πŸ’…πŸ‘‘

πŸ“¦ where this page comes from