Home
last modified time | relevance | path

Searched full:sor (Results 1 – 25 of 95) sorted by relevance

1234

/openbmc/linux/drivers/gpu/drm/tegra/
H A Dsor.c31 #include "sor.h"
399 int (*probe)(struct tegra_sor *sor);
400 void (*audio_enable)(struct tegra_sor *sor);
401 void (*audio_disable)(struct tegra_sor *sor);
484 static inline u32 tegra_sor_readl(struct tegra_sor *sor, unsigned int offset) in tegra_sor_readl() argument
486 u32 value = readl(sor->regs + (offset << 2)); in tegra_sor_readl()
488 trace_sor_readl(sor->dev, offset, value); in tegra_sor_readl()
493 static inline void tegra_sor_writel(struct tegra_sor *sor, u32 value, in tegra_sor_writel() argument
496 trace_sor_writel(sor->dev, offset, value); in tegra_sor_writel()
497 writel(value, sor->regs + (offset << 2)); in tegra_sor_writel()
[all …]
/openbmc/u-boot/drivers/video/tegra124/
H A Dsor.c17 #include "sor.h"
48 static inline u32 tegra_sor_readl(struct tegra_dc_sor_data *sor, u32 reg) in tegra_sor_readl() argument
50 return readl((u32 *)sor->base + reg); in tegra_sor_readl()
53 static inline void tegra_sor_writel(struct tegra_dc_sor_data *sor, u32 reg, in tegra_sor_writel() argument
56 writel(val, (u32 *)sor->base + reg); in tegra_sor_writel()
59 static inline void tegra_sor_write_field(struct tegra_dc_sor_data *sor, in tegra_sor_write_field() argument
62 u32 reg_val = tegra_sor_readl(sor, reg); in tegra_sor_write_field()
65 tegra_sor_writel(sor, reg, reg_val); in tegra_sor_write_field()
70 struct tegra_dc_sor_data *sor = dev_get_priv(dev); in tegra_dp_disable_tx_pu() local
72 tegra_sor_write_field(sor, DP_PADCTL(sor->portnum), in tegra_dp_disable_tx_pu()
[all …]
H A Ddp.c17 #include "sor.h"
32 struct udevice *sor; member
603 debug("dp: sor setting: unable to get a good tusize, force watermark to 30\n"); in tegra_dc_dp_calc_config()
607 debug("dp: sor setting: force watermark to the number of symbols in the line\n"); in tegra_dc_dp_calc_config()
717 struct udevice *sor, int ena) in tegra_dc_dp_set_assr() argument
731 tegra_dc_sor_set_internal_panel(sor, ena); in tegra_dc_dp_set_assr()
736 struct udevice *sor, in tegra_dp_set_link_bandwidth() argument
739 tegra_dc_sor_set_link_bandwidth(sor, link_bw); in tegra_dp_set_link_bandwidth()
747 struct udevice *sor) in tegra_dp_set_lane_count() argument
760 tegra_dc_sor_set_lane_count(sor, link_cfg->lane_count); in tegra_dp_set_lane_count()
[all …]
H A Dsor.h878 int tegra_dc_sor_enable_dp(struct udevice *sor,
880 int tegra_dc_sor_set_power_state(struct udevice *sor, int pu_pd);
885 void tegra_dc_sor_set_panel_power(struct udevice *sor,
892 void tegra_dc_sor_power_down_unused_lanes(struct udevice *sor,
894 int tegra_dc_sor_set_voltage_swing(struct udevice *sor,
898 void tegra_dp_disable_tx_pu(struct udevice *sor);
902 int tegra_dc_sor_attach(struct udevice *dc_dev, struct udevice *sor,
905 int tegra_dc_sor_detach(struct udevice *dc_dev, struct udevice *sor);
/openbmc/linux/Documentation/devicetree/bindings/display/tegra/
H A Dnvidia,tegra124-sor.yaml4 $id: http://devicetree.org/schemas/display/tegra/nvidia,tegra124-sor.yaml#
7 title: NVIDIA Tegra SOR Output Encoder
14 The Serial Output Resource (SOR) can be used to drive HDMI, LVDS, eDP
19 pattern: "^sor@[0-9a-f]+$"
24 - nvidia,tegra124-sor
25 - nvidia,tegra210-sor
27 - nvidia,tegra186-sor
29 - nvidia,tegra194-sor
32 - const: nvidia,tegra132-sor
33 - const: nvidia,tegra124-sor
[all …]
/openbmc/linux/drivers/gpu/drm/nouveau/nvkm/engine/disp/
H A Dg94.c34 g94_sor_dp_watermark(struct nvkm_ior *sor, int head, u8 watermark) in g94_sor_dp_watermark() argument
36 struct nvkm_device *device = sor->disp->engine.subdev.device; in g94_sor_dp_watermark()
37 const u32 loff = nv50_sor_link(sor); in g94_sor_dp_watermark()
43 g94_sor_dp_activesym(struct nvkm_ior *sor, int head, in g94_sor_dp_activesym() argument
46 struct nvkm_device *device = sor->disp->engine.subdev.device; in g94_sor_dp_activesym()
47 const u32 loff = nv50_sor_link(sor); in g94_sor_dp_activesym()
54 g94_sor_dp_audio_sym(struct nvkm_ior *sor, int head, u16 h, u32 v) in g94_sor_dp_audio_sym() argument
56 struct nvkm_device *device = sor->disp->engine.subdev.device; in g94_sor_dp_audio_sym()
57 const u32 soff = nv50_ior_base(sor); in g94_sor_dp_audio_sym()
64 g94_sor_dp_drive(struct nvkm_ior *sor, int ln, int pc, int dc, int pe, int pu) in g94_sor_dp_drive() argument
[all …]
H A Dga102.c32 ga102_sor_dp_links(struct nvkm_ior *sor, struct nvkm_i2c_aux *aux) in ga102_sor_dp_links() argument
34 struct nvkm_device *device = sor->disp->engine.subdev.device; in ga102_sor_dp_links()
35 const u32 soff = nv50_ior_base(sor); in ga102_sor_dp_links()
36 const u32 loff = nv50_sor_link(sor); in ga102_sor_dp_links()
40 switch (sor->dp.bw) { in ga102_sor_dp_links()
54 dpctrl |= ((1 << sor->dp.nr) - 1) << 16; in ga102_sor_dp_links()
55 if (sor->dp.mst) in ga102_sor_dp_links()
57 if (sor->dp.ef) in ga102_sor_dp_links()
85 ga102_sor_clock(struct nvkm_ior *sor) in ga102_sor_clock() argument
87 struct nvkm_device *device = sor->disp->engine.subdev.device; in ga102_sor_clock()
[all …]
H A Dgm200.c34 gm200_sor_dp_drive(struct nvkm_ior *sor, int ln, int pc, int dc, int pe, int pu) in gm200_sor_dp_drive() argument
36 struct nvkm_device *device = sor->disp->engine.subdev.device; in gm200_sor_dp_drive()
37 const u32 loff = nv50_sor_link(sor); in gm200_sor_dp_drive()
38 const u32 shift = sor->func->dp->lanes[ln] * 8; in gm200_sor_dp_drive()
95 const u32 sor = ior ? ior->id + 1 : 0; in gm200_sor_route_set() local
99 nvkm_mask(device, 0x612308 + moff, 0x0000001f, link << 4 | sor); in gm200_sor_route_set()
104 nvkm_mask(device, 0x612388 + moff, 0x0000001f, link << 4 | sor); in gm200_sor_route_set()
112 int lnk[2], sor[2], m, s; in gm200_sor_route_get() local
118 sor[s] = (data & 0x0000000f); in gm200_sor_route_get()
119 if (!sor[s]) in gm200_sor_route_get()
[all …]
H A Dtu102.c33 tu102_sor_dp_vcpi(struct nvkm_ior *sor, int head, u8 slot, u8 slot_nr, u16 pbn, u16 aligned) in tu102_sor_dp_vcpi() argument
35 struct nvkm_device *device = sor->disp->engine.subdev.device; in tu102_sor_dp_vcpi()
43 tu102_sor_dp_links(struct nvkm_ior *sor, struct nvkm_i2c_aux *aux) in tu102_sor_dp_links() argument
45 struct nvkm_device *device = sor->disp->engine.subdev.device; in tu102_sor_dp_links()
46 const u32 soff = nv50_ior_base(sor); in tu102_sor_dp_links()
47 const u32 loff = nv50_sor_link(sor); in tu102_sor_dp_links()
51 clksor |= sor->dp.bw << 18; in tu102_sor_dp_links()
52 dpctrl |= ((1 << sor->dp.nr) - 1) << 16; in tu102_sor_dp_links()
53 if (sor->dp.mst) in tu102_sor_dp_links()
55 if (sor->dp.ef) in tu102_sor_dp_links()
[all …]
H A Dgf119.c85 gf119_sor_dp_watermark(struct nvkm_ior *sor, int head, u8 watermark) in gf119_sor_dp_watermark() argument
87 struct nvkm_device *device = sor->disp->engine.subdev.device; in gf119_sor_dp_watermark()
94 gf119_sor_dp_audio_sym(struct nvkm_ior *sor, int head, u16 h, u32 v) in gf119_sor_dp_audio_sym() argument
96 struct nvkm_device *device = sor->disp->engine.subdev.device; in gf119_sor_dp_audio_sym()
104 gf119_sor_dp_audio(struct nvkm_ior *sor, int head, bool enable) in gf119_sor_dp_audio() argument
106 struct nvkm_device *device = sor->disp->engine.subdev.device; in gf119_sor_dp_audio()
119 gf119_sor_dp_vcpi(struct nvkm_ior *sor, int head, u8 slot, u8 slot_nr, u16 pbn, u16 aligned) in gf119_sor_dp_vcpi() argument
121 struct nvkm_device *device = sor->disp->engine.subdev.device; in gf119_sor_dp_vcpi()
129 gf119_sor_dp_drive(struct nvkm_ior *sor, int ln, int pc, int dc, int pe, int pu) in gf119_sor_dp_drive() argument
131 struct nvkm_device *device = sor->disp->engine.subdev.device; in gf119_sor_dp_drive()
[all …]
H A Dgm107.c32 gm107_sor_dp_pattern(struct nvkm_ior *sor, int pattern) in gm107_sor_dp_pattern() argument
34 struct nvkm_device *device = sor->disp->engine.subdev.device; in gm107_sor_dp_pattern()
35 const u32 soff = nv50_ior_base(sor); in gm107_sor_dp_pattern()
49 if (sor->asy.link & 1) in gm107_sor_dp_pattern()
81 return nvkm_ior_new_(&gm107_sor, disp, SOR, id, true); in gm107_sor_new()
95 .sor = { .cnt = gf119_sor_cnt, .new = gm107_sor_new },
H A Dnv50.c160 nv50_sor_clock(struct nvkm_ior *sor) in nv50_sor_clock() argument
162 struct nvkm_device *device = sor->disp->engine.subdev.device; in nv50_sor_clock()
163 const int div = sor->asy.link == 3; in nv50_sor_clock()
164 const u32 soff = nv50_ior_base(sor); in nv50_sor_clock()
179 nv50_sor_power(struct nvkm_ior *sor, bool normal, bool pu, bool data, bool vsync, bool hsync) in nv50_sor_power() argument
181 struct nvkm_device *device = sor->disp->engine.subdev.device; in nv50_sor_power()
182 const u32 soff = nv50_ior_base(sor); in nv50_sor_power()
198 nv50_sor_state(struct nvkm_ior *sor, struct nvkm_ior_state *state) in nv50_sor_state() argument
200 struct nvkm_device *device = sor->disp->engine.subdev.device; in nv50_sor_state()
201 const u32 coff = sor->id * 8 + (state == &sor->arm) * 4; in nv50_sor_state()
[all …]
H A Doutp.c67 case DCB_OUTPUT_TMDS : *type = SOR; return TMDS; in nvkm_outp_xlat()
68 case DCB_OUTPUT_LVDS : *type = SOR; return LVDS; in nvkm_outp_xlat()
69 case DCB_OUTPUT_DP : *type = SOR; return DP; in nvkm_outp_xlat()
160 /* Deal with panels requiring identity-mapped SOR assignment. */ in nvkm_outp_acquire()
162 ior = nvkm_ior_find(outp->disp, SOR, ffs(outp->info.or) - 1); in nvkm_outp_acquire()
196 /* Use a HDA-supporting SOR anyway. */ in nvkm_outp_acquire()
247 link = (ior->type == SOR) ? outp->info.sorconf.link : 0; in nvkm_outp_init_route()
H A Dgt215.c68 gt215_sor_dp_audio(struct nvkm_ior *sor, int head, bool enable) in gt215_sor_dp_audio() argument
70 struct nvkm_device *device = sor->disp->engine.subdev.device; in gt215_sor_dp_audio()
71 const u32 soff = nv50_ior_base(sor); in gt215_sor_dp_audio()
198 return nvkm_ior_new_(&gt215_sor, disp, SOR, id, true); in gt215_sor_new()
211 .sor = { .cnt = g94_sor_cnt, .new = gt215_sor_new },
H A Dgv100.c54 gv100_sor_dp_watermark(struct nvkm_ior *sor, int head, u8 watermark) in gv100_sor_dp_watermark() argument
56 struct nvkm_device *device = sor->disp->engine.subdev.device; in gv100_sor_dp_watermark()
63 gv100_sor_dp_audio_sym(struct nvkm_ior *sor, int head, u16 h, u32 v) in gv100_sor_dp_audio_sym() argument
65 struct nvkm_device *device = sor->disp->engine.subdev.device; in gv100_sor_dp_audio_sym()
73 gv100_sor_dp_audio(struct nvkm_ior *sor, int head, bool enable) in gv100_sor_dp_audio() argument
75 struct nvkm_device *device = sor->disp->engine.subdev.device; in gv100_sor_dp_audio()
184 gv100_sor_state(struct nvkm_ior *sor, struct nvkm_ior_state *state) in gv100_sor_state() argument
186 struct nvkm_device *device = sor->disp->engine.subdev.device; in gv100_sor_state()
187 const u32 coff = (state == &sor->arm) * 0x8000 + sor->id * 0x20; in gv100_sor_state()
229 return nvkm_ior_new_(&gv100_sor, disp, SOR, id, hda & BIT(id)); in gv100_sor_new()
[all …]
H A Dmcp77.c41 return nvkm_ior_new_(&mcp77_sor, disp, SOR, id, false); in mcp77_sor_new()
54 .sor = { .cnt = g94_sor_cnt, .new = mcp77_sor_new },
H A Dior.c29 [SOR] = "SOR",
H A Dgp100.c54 return nvkm_ior_new_(&gp100_sor, disp, SOR, id, hda & BIT(id)); in gp100_sor_new()
67 .sor = { .cnt = gf119_sor_cnt, .new = gp100_sor_new },
H A Dmcp89.c55 return nvkm_ior_new_(&mcp89_sor, disp, SOR, id, true); in mcp89_sor_new()
68 .sor = { .cnt = g94_sor_cnt, .new = mcp89_sor_new },
/openbmc/linux/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/
H A Ddcb.h38 struct sor_conf sor; member
47 struct sor_conf sor; member
52 struct sor_conf sor; member
/openbmc/u-boot/doc/device-tree-bindings/gpu/
H A Dnvidia,tegra20-host1x.txt195 - sor: serial output resource
198 - compatible: "nvidia,tegra124-sor"
204 - sor: clock input for the SOR hardware
206 - dp: reference clock for the SOR clock
207 - safe: safe reference for the SOR clock during power up
211 - sor
/openbmc/linux/drivers/gpu/drm/nouveau/nvkm/subdev/bios/
H A Dmxm.c49 /* These map MXM v2.x digital connection values to the appropriate SOR/link,
94 nvkm_warn(subdev, "unknown sor map v%02x\n", ver); in mxm_sor_map()
107 nvkm_warn(subdev, "missing sor map\n"); in mxm_sor_map()
/openbmc/u-boot/arch/powerpc/cpu/mpc8xx/
H A Dimmap.c185 SOR, in do_iopset() enumerator
221 cmd = SOR; in do_iopset()
253 case SOR: in do_iopset()
393 "PORT PIN CMD VALUE\nPORT: A-D, PIN: 0-31, CMD: [dat|dir|odr|sor], VALUE: 0|1"
/openbmc/linux/Documentation/gpu/
H A Dtegra.rst80 controllers can drive both DSI outputs and both SOR outputs, the third cannot
117 by the versatile SOR output, which supports eDP, DP and HDMI. The SOR is able
/openbmc/linux/drivers/gpu/drm/nouveau/
H A Dnouveau_led.c60 u32 input_clk = 27e6; /* PDISPLAY.SOR[1].PWM is connected to the crystal */ in nouveau_led_set_brightness()
69 * than PDISPLAY.SOR[1].PWM. in nouveau_led_set_brightness()

1234