Required properties:
- compatible: value should be "xlnx,v-cresample-3.01.a"
- reg: base address and size of the CRESAMPLE IP
+ - xlnx,input-format, xlnx,output-format: the input/output video formats of
+ CRESAMPLE. The value should be one of following format strings.
+
+ yuv422
+ yuv444
+ yuv420
Example:
v_cresample_0: v-cresample@40020000 {
compatible = "xlnx,v-cresample-3.01.a";
reg = <0x40020000 0x10000>;
+ xlnx,input-format = "yuv444";
+ xlnx,output-format = "yuv422";
};
cresample_0: v-cresample@40020000 {
compatible = "xlnx,v-cresample-4.0";
reg = <0x40020000 0x10000>;
- xlnx,input-format = <1>;
- xlnx,output-format = <0>;
+ xlnx,input-format = "yuv444";
+ xlnx,output-format = "yuv422";
};
rgb2ycrcb_0: v-rgb2ycrcb@40030000 {
struct xilinx_cresample {
void __iomem *base;
+ const char *input_format_name;
+ const char *output_format_name;
};
/* enable cresample */
reg | CRESAMPLE_CTL_RU);
}
+/* get an input format */
+const char *
+xilinx_cresample_get_input_format_name(struct xilinx_cresample *cresample)
+{
+ return cresample->input_format_name;
+}
+
+/* get an output format */
+const char *
+xilinx_cresample_get_output_format_name(struct xilinx_cresample *cresample)
+{
+ return cresample->output_format_name;
+}
+
struct xilinx_cresample *xilinx_cresample_probe(struct device *dev,
struct device_node *node)
{
if (IS_ERR(cresample->base))
return ERR_CAST(cresample->base);
+ ret = of_property_read_string(node, "xlnx,input-format",
+ &cresample->input_format_name);
+ if (ret) {
+ dev_warn(dev, "failed to get an input format prop\n");
+ return ERR_PTR(ret);
+ }
+
+ ret = of_property_read_string(node, "xlnx,output-format",
+ &cresample->output_format_name);
+ if (ret) {
+ dev_warn(dev, "failed to get an output format prop\n");
+ return ERR_PTR(ret);
+ }
+
xilinx_cresample_reset(cresample);
return cresample;
void xilinx_cresample_enable(struct xilinx_cresample *cresample);
void xilinx_cresample_disable(struct xilinx_cresample *cresample);
+const char *
+xilinx_cresample_get_input_format_name(struct xilinx_cresample *cresample);
+const char *
+xilinx_cresample_get_output_format_name(struct xilinx_cresample *cresample);
+
struct device;
struct device_node;